#LyX 2.3 created this file. For more info see http://www.lyx.org/ \lyxformat 544 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass book \use_default_options true \begin_modules logicalmkup \end_modules \maintain_unincluded_children false \language english \language_package auto \inputencoding auto \fontencoding global \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures false \graphics default \default_output_format default \output_sync 0 \bibtex_command default \index_command default \paperfontsize default \spacing single \use_hyperref false \papersize a4paper \use_geometry false \use_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 1 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 0 \use_minted 0 \index Index \shortcut idx \color #008000 \end_index \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \paragraph_indentation default \is_math_indent 0 \math_numbering_side default \quotes_style english \dynamic_quotes 0 \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Title XIOS Fortran Reference Guide \end_layout \begin_layout Chapter Attribute reference \end_layout \begin_layout Section Context attribute reference \end_layout \begin_layout Section Calendar attribute reference \end_layout \begin_layout Subsection* type: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {Gregorian, Julian, D360, AllLeap, NoLeap, user_defined} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Define the calendar used for the current context. This attribute is mandatory and cannot be modified once it has been set. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined using the following subroutine: \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* start_date: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout date \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_date) :: start_date \end_layout \begin_layout Standard Define the start date of the simulation for the current context. This attribute is optional, the default value is \begin_inset Flex Emph status collapsed \begin_layout Plain Layout \series bold 0000-01-01 00:00:00 \end_layout \end_inset . The \begin_inset Flex Strong status collapsed \begin_layout Plain Layout type \end_layout \end_inset attribute must always be set at the same time or before this attribute is defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset A partial date is allowed in the configuration file as long as the omitted parts are at the end, in which case they are initialized as in the default value. Optionally an offset can be added to the date using the notation " \emph on + duration \emph default ". \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute can be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Standard or later using the following subroutine: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_start_date(start_date) \end_layout \begin_layout Subsection* time_origin: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout date \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_date) :: time_origin \end_layout \begin_layout Standard Define the time origin of a time axis. It will appear as metadata attached to the time axis in an output file. This attribute is optional, the default value is \begin_inset Flex Emph status collapsed \begin_layout Plain Layout \series bold 0000-01-01 00:00:00 \end_layout \end_inset . The \begin_inset Flex Strong status collapsed \begin_layout Plain Layout type \end_layout \end_inset attribute must always be set at the same time or before this attribute is defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset A partial date is allowed in the configuration file as long as the omitted parts are at the end, in which case they are initialized as in the default value. Optionally an offset can be added to the date using the notation " \emph on + duration \emph default ". \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute can be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Standard or later using the following subroutine: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_time_origin(time_origin) \end_layout \begin_layout Subsection* timestep: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout duration \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: timestep \end_layout \begin_layout Standard Define the time step of the simulation for the current context. This attribute is mandatory. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute can be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Standard or using the following subroutine: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_timestep(timestep) \end_layout \begin_layout Subsection* day_length: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: day_length \end_layout \begin_layout Standard Define the duration of a day in seconds when using a custom calendar. This attribute is mandatory if the calendar \series bold type \series default is set to " \emph on user_defined \emph default ", otherwise it must not be defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* month_lengths: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: month_lengths(:) \end_layout \begin_layout Standard Define the duration of each month, in days, when using a custom calendar. The number of elements in the array defines the number of months in a year and the sum of all elements is the total number of days in a year. This attribute is mandatory if the calendar \series bold type \series default is set to \series bold \emph on user_defined \series default \emph default and the \series bold year_length \series default attribute is not used, otherwise it must not be defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* year_length: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: year_length \end_layout \begin_layout Standard Define the duration of a year, in seconds, when using a custom calendar. This attribute is mandatory if the calendar \series bold type \series default is set to \series bold \emph on user_defined \series default \emph default and the \series bold month_lengths \series default attribute is not used, otherwise it must not be defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset Note that the date format is modified when using this attribute: the month must be always be omitted and the day must also be omitted if \begin_inset Formula $year\_length\leq day\_length$ \end_inset . \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* leap_year_month: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: leap_year_month \end_layout \begin_layout Standard Define the month to which the extra day will be added in case of leap year, when using a custom calendar. This attribute is optional if the calendar \series bold type \series default is set to \series bold \emph on user_defined \series default \emph default and the \series bold month_lengths \series default attribute is used, otherwise it must not be defined. The default behavior is not to have any leap year. If defined, this attribute must comply with the following constraint: \begin_inset Formula $1\leq leap\_year\_month\leq size(month\_lengths)$ \end_inset and the \series bold leap_year_drift \series default attribute must also be defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* leap_year_drift: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: leap_year_drift \end_layout \begin_layout Standard Define the yearly drift, expressed as a fraction of a day, between the calendar year and the astronomical year, when using a custom calendar. This attribute is optional if the calendar \series bold type \series default is set to \series bold \emph on user_defined \series default \emph default and the \series bold month_lengths \series default attribute is used, otherwise it must not be defined. The default behavior is not to have any leap year, i.e. the default value is \begin_inset Formula $\mathbf{0}$ \end_inset . If defined, this attribute must comply with the following constraint: \begin_inset Formula $0\leq leap\_year\_drift<1$ \end_inset and the \series bold leap_year_month \series default attribute must also be defined. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Subsection* leap_year_drift_offset: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: leap_year_drift_offset \end_layout \begin_layout Standard Define the initial drift between the calendar year and the astronomical year, expressed as a fraction of a day, at the beginning of the time origin's year, when using a custom calendar. This attribute is optional if the \series bold leap_year_month \series default and \series bold leap_year_drift \series default attributes are used, otherwise it must not be defined. The default value is \begin_inset Formula $\mathbf{0}$ \end_inset . If defined, this attribute must comply with the following constraint: \begin_inset Formula $0\leq leap\_year\_drift\_offset<1$ \end_inset . If \begin_inset Formula $leap\_yeap\_drift\_offset+leap\_yeap\_drift$ \end_inset is greater or equal to 1, then the first year will be a leap year. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset When using the Fortran interface, this attribute must be defined at the same time as the calendar \series bold type \series default : \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, \begin_inset Newline newline \end_inset leap_year_drift_offset) \end_layout \begin_layout Section Scalar attribute reference \end_layout \begin_layout Subsection* name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a scalar as it will appear in a file. If not defined, the name will be generated automatically based on the id. If multiple scalars are defined in the same file, each scalar must have a unique name. \end_layout \begin_layout Subsection* standard_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: standard_name \end_layout \begin_layout Standard Defines the standard name of a scalar as it will appear in the scalar's metadata in an output file. \end_layout \begin_layout Subsection* long_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: long_name \end_layout \begin_layout Standard Defines the long name of a scalar as it will appear in the scalar's metadata in an output file. \end_layout \begin_layout Subsection* unit (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: unit \end_layout \begin_layout Standard Defines the scalar unit as it will appear in the scalar's metadata in an output file. \end_layout \begin_layout Subsection* value (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: value \end_layout \begin_layout Standard Defines the value of a scalar. If both, the label and the value, are set then only the label will be written into a file. \end_layout \begin_layout Subsection* bounds (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds(:) \end_layout \begin_layout Standard Defines (two) scalar boundaries. The array size must should be equal to 2. \end_layout \begin_layout Subsection* bounds_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: bounds_name \end_layout \begin_layout Standard Defines the name of scalar bounds as it will appear in a file. If not defined, the name will be generated automatically based on the scalar id. \end_layout \begin_layout Subsection* prec (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: prec \end_layout \begin_layout Standard Defines the precision in bytes of scalar value and boundaries as it will be written into an output file. Available values are: 4 (float single precision) and 8 (float double precision). The default value is 4. \end_layout \begin_layout Subsection* label (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: label \end_layout \begin_layout Standard Defines the label of a scalar. If both, the label and the value, are set then only the label will be output into a file. \end_layout \begin_layout Subsection* scalar_ref (optional): string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: scalar_ref \end_layout \begin_layout Standard Defines the reference to a scalar. All attributes will be inherited from the referenced scalar via the classical inheritance mechanism. The value assigned to the referenced scalar will be transmitted to the current scalar. \end_layout \begin_layout Subsection* positive (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {up, down} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: positive \end_layout \begin_layout Standard Defines the positive direction for fields representing height or depth. \end_layout \begin_layout Subsection* axis_type (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {X, Y, Z, T} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: axis_type \end_layout \begin_layout Standard Defines the type of a (scalar) axis. The values correspond to the following axis types: \end_layout \begin_layout Itemize \series bold \shape italic X: \series default \shape default longitude \end_layout \begin_layout Itemize \series bold \shape italic \emph on Y \emph default : \series default \shape default latitude \end_layout \begin_layout Itemize \series bold \shape italic \emph on Z \emph default : \series default \shape default vertical axis \end_layout \begin_layout Itemize \series bold \shape italic T: \series default \shape default time axis. \end_layout \begin_layout Subsection* comment: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. \end_layout \begin_layout Section Axis attribute reference \end_layout \begin_layout Subsection* name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a vertical axis as it will appear in an output file. If not defined, the name will be generated automatically based on the axis id. If multiple vertical axes are defined in the same file, each axis must have a unique name. \end_layout \begin_layout Subsection* standard_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: standard_name \end_layout \begin_layout Standard Defines the standard name of a vertical axis as it will appear in the axis' metadata in an output file. \end_layout \begin_layout Subsection* long_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: long_name \end_layout \begin_layout Standard Defines the long name of a vertical axis as it will appear in the axis' metadata in an output file. \end_layout \begin_layout Subsection* unit (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: unit \end_layout \begin_layout Standard Defines the unit of an axis as it will appear in the axis' metadata in an output file. \end_layout \begin_layout Subsection* dim_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: dim_name \end_layout \begin_layout Standard Defines the name of axis dimension as it will appear in the file's metadata. The default axis dimension name is the axis name. \end_layout \begin_layout Subsection* formula (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: formula \end_layout \begin_layout Standard Adds the \begin_inset Flex Code status open \begin_layout Plain Layout formula \end_layout \end_inset attribute to the metadata associated to the axis in the output file, for CF conformance. \end_layout \begin_layout Subsection* formula_term (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: formula_term \end_layout \begin_layout Standard Adds the \begin_inset Flex Code status open \begin_layout Plain Layout formula_term \end_layout \end_inset attribute to the metadata associated to the axis in the output file, for CF conformance. \end_layout \begin_layout Subsection* formula_bounds (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: formula_bounds \end_layout \begin_layout Standard Adds the \begin_inset Flex Code status open \begin_layout Plain Layout formula \end_layout \end_inset attribute to the metadata associated to the axis boundairies in the output file, for CF conformance. This attribute is meaningfull if \begin_inset Flex Code status open \begin_layout Plain Layout axis_bounds \end_layout \end_inset is not defined. \end_layout \begin_layout Subsection* formula_term_bounds (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: formula_term_bounds \end_layout \begin_layout Standard Adds the \begin_inset Flex Code status open \begin_layout Plain Layout formula_term \end_layout \end_inset attribute to the metadata associated to the axis boundairies in the output file, for CF conformance. This attribute is meaningfull if \begin_inset Flex Code status open \begin_layout Plain Layout axis_bounds \end_layout \end_inset is not defined. \end_layout \begin_layout Subsection* n_glo (mandatory): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n_glo \end_layout \begin_layout Standard Defines the global size of an axis. \end_layout \begin_layout Subsection* begin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: begin \end_layout \begin_layout Standard Defines the beginning index of the local domain. It can take value between 0 and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n_glo-1 \end_layout \end_inset . If not specified the default value is 0. \end_layout \begin_layout Subsection* n (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n \end_layout \begin_layout Standard Defines the local size of an axis. It can take value between 0 and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n_glo \end_layout \end_inset . If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n_glo \end_layout \end_inset . Local axis decomposition can be declared either with attributes \series bold \shape italic {n, begin} \series default \shape default or with \series bold \shape italic index \series default \shape default . \end_layout \begin_layout Subsection* index (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: index(:) \end_layout \begin_layout Standard Defines the global indexes of a local axis held by each process. If the attribute is specified, its array size must be equal to \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n \end_layout \end_inset . Local axis decomposition can be declared either with attributes \series bold \shape italic {n, begin} \series default \shape default or with \series bold \shape italic index \series default \shape default . \end_layout \begin_layout Subsection* value (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: value(:) \end_layout \begin_layout Standard Defines the value of each level of a vertical axis. The array size must be equal to the value of the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n \end_layout \end_inset . If the label is provided then only the label will be written into a file and not the axis value and the axis boundaries. \end_layout \begin_layout Subsection* bounds (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 2D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds(:,:) \end_layout \begin_layout Standard Defines the boundaries of each level of a vertical axis. The dimensions of the array must be \begin_inset Formula $2\times n$ \end_inset . \end_layout \begin_layout Subsection* bounds_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: bounds_name \end_layout \begin_layout Standard Defines the name of axis boundaries as it will appear in an ouput file. If not defined, the name will be generated automatically based on the axis id. \end_layout \begin_layout Subsection* prec (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: prec \end_layout \begin_layout Standard Defines the precision in bytes of axis value and boundaries as it will be written into an output file. Available values are: 4 (float single precision) and 8 (float double precision). The default value is 4. \end_layout \begin_layout Subsection* label (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER, ALLOCATABLE :: label(:) \end_layout \begin_layout Standard Defines the label of an axis. The size of the array must be equal to the value of the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n \end_layout \end_inset . If the label is provided then only the label will be written into a file and not the axis value and the axis boundaries. \end_layout \begin_layout Subsection* data_begin (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_begin \end_layout \begin_layout Standard Defines the beginning index of local field data owned by each process. The attribute is an offset relative to the local axis, so the value can be negative. A negative value indicates that only some valid part of the data will extracted , for example in the case of a ghost cell. A positive value indicates that the local domain is greater than the data stored in memory. The 0-value means that the local domain matches the data in memory. The default value is 0. The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_begin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_n \end_layout \end_inset must be defined together. \end_layout \begin_layout Subsection* data_n (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_n \end_layout \begin_layout Standard Defines the size of local field data. The attribute can take value starting from 0 (no data on a process). The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n \end_layout \end_inset . The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_begin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_n \end_layout \end_inset must be defined together. \end_layout \begin_layout Subsection* data_index (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_index \end_layout \begin_layout Standard In case of a compressed vertical axis, the attribute defines the position of data points stored in the memory. For example, for a local axis of size \begin_inset Flex Strong status collapsed \begin_layout Plain Layout n=3 \end_layout \end_inset and local data size of \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_n=5 \end_layout \end_inset , if \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_index=(/ -1, 2, 1, 0, -1 /) \end_layout \end_inset then the first and the last data points are ghosts and only the three middle values will be written in the reversed order. Only \begin_inset Flex Code status open \begin_layout Plain Layout data_begin/data_n \end_layout \end_inset or \begin_inset Flex Code status open \begin_layout Plain Layout data_index \end_layout \end_inset can be used together. \end_layout \begin_layout Subsection* mask (optional): \emph on 1D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask(:) \end_layout \begin_layout Standard Defines the mask of the local axis. The masked value will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. \end_layout \begin_layout Subsection* n_distributed_partition (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n_distributed_partition \end_layout \begin_layout Standard Defines the number of local axes in case if the axis is generated automatically by XIOS. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset . Nota: currently this functionnality is broken, this attribute is meaningfull. \end_layout \begin_layout Subsection* axis_ref (optional): string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: axis_ref \end_layout \begin_layout Standard Defines the reference of an axis. All attributes will be inherited from the referenced axis with the classical inheritance mechanism. The value assigned to the referenced axis will be transmitted to the current axis. \end_layout \begin_layout Subsection* positive (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {up, down} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: positive \end_layout \begin_layout Standard Defines the positive direction for fields representing height or depth. It will just be appended in axis metadata in output file, for CF compliance. \end_layout \begin_layout Subsection* axis_type (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {X, Y, Z, T} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: axis_type \end_layout \begin_layout Standard Defines the type of an axis. The values correspond to the following axis types: \end_layout \begin_layout Itemize \series bold \shape italic X: \series default \shape default longitude \end_layout \begin_layout Itemize \series bold \shape italic \emph on Y \emph default : \series default \shape default latitude \end_layout \begin_layout Itemize \series bold \shape italic \emph on Z \emph default : \series default \shape default vertical axis \end_layout \begin_layout Itemize \series bold \shape italic T: \series default \shape default time axis. \end_layout \begin_layout Standard It will just be append in axis metadata in ouput file, for CF compliance. \end_layout \begin_layout Subsection* comment (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. \end_layout \begin_layout Section Domain attribute reference \end_layout \begin_layout Subsection* name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a horizontal domain. This attribute may be used in case of multiple domains defined in the same file. In this case, the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout name \end_layout \end_inset attribute will be suffixed to the longitude and latitude dimensions and axis name. If the domain name is not provided, it will be generated automatically with the id of the domain. \end_layout \begin_layout Subsection* standard_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: standard_name \end_layout \begin_layout Standard Defines the standard name of a domain as it will appear in the domain's metadata in an output file. \end_layout \begin_layout Subsection* long_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: long_name \end_layout \begin_layout Standard Defines the long name of a domain as it will appear in the domain's metadata in an output file. \end_layout \begin_layout Subsection* type (mandatory): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout enumeration {rectilinear, curvilinear, unstructured, gaussian} \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Defines the type of a grid. \end_layout \begin_layout Subsection* dim_i_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: dim_i_name \end_layout \begin_layout Standard Defines the name of the first domain dimension as it will appear in the file's metadata. The default value is ' \begin_inset Flex Code status open \begin_layout Plain Layout X \end_layout \end_inset '. In case of multiple domain in the file, the dimension will be preffixed by the domain name. \end_layout \begin_layout Subsection* dim_j_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: dim_j_name \end_layout \begin_layout Standard Defines the name of the second domain dimension as it will appear in file's metadata. The default value is ' \begin_inset Flex Code status open \begin_layout Plain Layout Y \end_layout \end_inset '. In case of multiple domain in the file, the dimension will be preffixed by the domain name. \end_layout \begin_layout Subsection* ni_glo (mandatory): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: ni_glo \end_layout \begin_layout Standard Defines the size of the first dimension of the global domain. \end_layout \begin_layout Subsection* nj_glo (mandatory): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: nj_glo \end_layout \begin_layout Standard Defines the size of the second dimension of the global domain. \end_layout \begin_layout Subsection* ibegin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: ibegin \end_layout \begin_layout Standard Defines the beginning index of the first dimension of a local domain. The attribute takes value between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo-1 \end_layout \end_inset . If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . \end_layout \begin_layout Subsection* ni (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: ni \end_layout \begin_layout Standard Defines the size of the first dimension of a local domain. The attribute takes value between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo \end_layout \end_inset . If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo \end_layout \end_inset . \end_layout \begin_layout Subsection* jbegin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: jbegin \end_layout \begin_layout Standard Defines the beginning index of the second dimension of a local domain. The attribute takes value between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo-1 \end_layout \end_inset . If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . \end_layout \begin_layout Subsection* nj (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: nj \end_layout \begin_layout Standard Defines the size of the second dimension of a local domain. he attribute takes value between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset . If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset . \end_layout \begin_layout Subsection* lonvalue_1d (optional): \emph on 1D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lonvalue(:) \end_layout \begin_layout Standard Defines the longitude values of a local domain. For a cartesian grid, the array size should be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \end_layout \end_inset . For a curvilinear grid, the array size should be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \begin_inset Formula $\times$ \end_inset nj \end_layout \end_inset . In this case the first and second dimensions are collapsed into a linear array. For unstrutured and gaussian grid, the array size sould be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \end_layout \end_inset (the second dimension \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj \end_layout \end_inset is not used). Only latvalue_1d or latvalue_2d can be defined. Also the layout of latitude and longitude should be in conformance with each other: either 1D or 2D. \end_layout \begin_layout Subsection* lonvalue_2d (optional): \emph on 2D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lonvalue(:,:) \end_layout \begin_layout Standard Defines the longitude values of a local domain. For cartesian grid, the array size must beand curvilinear grids the array size should be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout (ni,nj) \end_layout \end_inset . For unstructured or gaussian grid it sould be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout (ni,1) \end_layout \end_inset . Only lonvalue_1d or lonvalue_2d can be defined. Also the layout of latitude and longitude should be in conformance with each other: either 1D or 2D. \end_layout \begin_layout Subsection* latvalue_1d (optional): \emph on 1D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: latvalue(:) \end_layout \begin_layout Standard Defines the latitude values of a local domain. For a cartesian and curvilinear grid, the array size should be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \begin_inset Formula $\times$ \end_inset nj \end_layout \end_inset . In this case the first and second dimensions are collapsed into a linear array. For unstrutured and gaussian grid, the array size sould be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \end_layout \end_inset (the second dimension \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj \end_layout \end_inset is not used). Only latvalue_1d or latvalue_2d can be defined. Also the layout of latitude and longitude should be in conformance with each other: either 1D or 2D. \end_layout \begin_layout Subsection* latvalue_2d (optional): \emph on 2D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: latvalue(:,:) \end_layout \begin_layout Standard Defines the latitude values of a local domain. For cartesian grid and curvilinear grids the array size should be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout (ni,nj) \end_layout \end_inset . For unstructured or gaussian grid it sould be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout (ni,1) \end_layout \end_inset . Only latvalue_1d or latvalue_2d can be defined. Also the layout of latitude and longitude should be in conformance with each other: either 1D or 2D. \end_layout \begin_layout Subsection* lon_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: lon_name \end_layout \begin_layout Standard Define the longitude name as it will appear in an output file. If not defined, the default will be ' \begin_inset Flex Code status open \begin_layout Plain Layout lon \end_layout \end_inset '. In case of multiple domain defined in a file, the longitude name will be suffixed by the domain name. \end_layout \begin_layout Subsection* lat_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: lat_name \end_layout \begin_layout Standard efine the longitude name as it will appear in an output file. If not defined, the default will be ' \begin_inset Flex Code status open \begin_layout Plain Layout lat \end_layout \end_inset '. In case of multiple domain defined in a file, the longitude name will be suffixed by the domain name. \end_layout \begin_layout Subsection* nvertex (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: nvertex \end_layout \begin_layout Standard Used only for unstructured domain. Defines the maximum number of vertices for a grid. The attribute is required for specifying the cell boundaries of the unstructure d meshes. For other grid (cartesian, curvilinear or gaussian), the nvertex value will be set automatically to 4. \end_layout \begin_layout Subsection* bounds_lon_1d (optional): \emph on 2D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lon(:,:) \end_layout \begin_layout Standard Defines the longitude values of the domain vertexes. For unstructured domain, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nvertex \end_layout \end_inset must be also defined (for other mesh it is set automatically to 4). The array dimensions shape must be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni) \end_layout \end_inset . \end_layout \begin_layout Subsection* bounds_lon_2d (optional): \emph on 3D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lon(:,:,:) \end_layout \begin_layout Standard Defines the longitude values of the domain vertexes. For unstructured domain, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nvertex \end_layout \end_inset must be also defined (for other mesh it is set automatically to 4). This attribute is useful when lonvalue_2d is defined. for cartesian and curvilinear domain, the array dimensions shape must be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni, nj) \end_layout \end_inset , and for gaussian or unstructured domain, it sould be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni, 1) \end_layout \end_inset . For cartesian, curvilinear . Either \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon_1d \end_layout \end_inset or \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon_2d \end_layout \end_inset can be defined. \end_layout \begin_layout Subsection* bounds_lat_1d (optional): \emph on 2D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lat(:,:) \end_layout \begin_layout Standard Defines the latitude values of the domain vertexes. For unstructured domain, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nvertex \end_layout \end_inset must be also defined (for other mesh it is set automatically to 4). The array dimensions shape must be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni) \end_layout \end_inset . \end_layout \begin_layout Subsection* bounds_lat_2d (optional): \emph on 3D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lat(:,:) \end_layout \begin_layout Standard Defines the latitude values of domain vertexes. For unstructured domain, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nvertex \end_layout \end_inset must be also defined. This attribute is useful when lonvalue_2d is defined. for cartesian and curvilinear domain, the array dimensions shape must be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni, nj) \end_layout \end_inset , and for gaussian or unstructured domain, it sould be of size \begin_inset Flex Code status open \begin_layout Plain Layout (nvertex, ni, 1) \end_layout \end_inset . For cartesian, curvilinear . Either \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon_1d \end_layout \end_inset or \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon_2d \end_layout \end_inset can be defined. \end_layout \begin_layout Subsection* bounds_lon_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: bounds_lon_name \end_layout \begin_layout Standard Defines the boundaries longitude boundaries name of domain as it will appear in an output file. Default value is ' \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon \end_layout \end_inset '. In case of multiple domains defined in a same file, the boundaries name will be suffixed by the domain name. \end_layout \begin_layout Subsection* bounds_lat_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: lat_name \end_layout \begin_layout Standard Defines the boundaries longitude boundaries name of domain as it will appear in an output file. Default value is ' \begin_inset Flex Code status open \begin_layout Plain Layout bounds_lon \end_layout \end_inset '. In case of multiple domains defined in a same file, the boundaries name will be suffixed by the domain name. \end_layout \begin_layout Subsection* area (optional): \emph on 2D-array of double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: area(:,:) \end_layout \begin_layout Standard The area of cells. The size of the array must \begin_inset Flex Code status open \begin_layout Plain Layout (ni, nj) \end_layout \end_inset for cartesian or curvilinear domain and (ni, 1) for unstructured or gaussian domain. If this attribute is defined, it will be wrote in the output file as domain metadata. This attribute could be also used in domain interpolation to take into account the area of the cell instead to take the computed value (for conservati on consideration). \end_layout \begin_layout Subsection* radius (optional): \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: radius \end_layout \begin_layout Standard Define the radius of the planet (or earth). If defined, it can be used by domain interpolation together with \begin_inset Flex Code status open \begin_layout Plain Layout area \end_layout \end_inset domain attribute in order to renormalize weight to compute conservative interpolation (see \begin_inset Flex Code status open \begin_layout Plain Layout domain_interpolate \end_layout \end_inset filter). \end_layout \begin_layout Subsection* prec (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: prec \end_layout \begin_layout Standard Defines the precision (in bytes) for which domain attributes (longitude, latitude, boudairies, ...) will be written in output file. Available values are: 4 (float single precision) and 8 (float double precision). The default value is 4 bytes. \end_layout \begin_layout Subsection* data_dim (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: datadim \end_layout \begin_layout Standard Defines how a field is stored on memory for the client code. The value can be either \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset or \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 2 \end_layout \end_inset . The value of \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset indicates that the horizontal layer of the field is stored as a 1D array. The value of \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 2 \end_layout \end_inset indicates that the horizontal layer is stored as a 2D array. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset . \end_layout \begin_layout Subsection* data_ibegin (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_ibegin \end_layout \begin_layout Standard Defines the beginning index of field data for the first dimension. This attribute is an offset relative to the local domain, so the value can be negative. A negative value indicates that only some valid part of the data will extracted , for example in the case of a ghost cell. A positive value indicates that the local domain is greater than the data stored in memory. A 0-value means that the local domain matches the data in memory. The default value is 0. The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_ibegin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_ni \end_layout \end_inset must be defined together. Only data_ibegin/data_ni or data_i_index/ \end_layout \begin_layout Subsection* data_ni (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_ni \end_layout \begin_layout Standard Defines the size of field data for the first dimension. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni \end_layout \end_inset . The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_ibegin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_ni \end_layout \end_inset must be defined together. \end_layout \begin_layout Subsection* data_jbegin (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_jbegin \end_layout \begin_layout Standard Defines the beginning index of field data for the second dimension. The attribute is taken into account only if \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_dim=2 \end_layout \end_inset . The attribute is an offset relative to the local domain, so the value can be negative. A negative value indicate that only some valid part of the data will extracted, for example in case of ghost cell. A positive value indicate that the local domain is greater than the data stored in memory. The 0-value means that the local domain matches the data in memory. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_jbegin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_nj \end_layout \end_inset must be defined together. \end_layout \begin_layout Subsection* data_nj (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_nj \end_layout \begin_layout Standard Defines the size of field data for the second dimension. The attribute is taken account only if \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_dim=2 \end_layout \end_inset . The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj \end_layout \end_inset . The attributes \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_jbegin \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout data_nj \end_layout \end_inset must be defined together. \end_layout \begin_layout Subsection* data_i_index (optional): \emph on 1D-array of integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_i_index(:) \end_layout \begin_layout Standard In case of a compressed horizontal domain, define the data indexation for the first dimension. This attribute cannot be used together with \begin_inset Flex Code status open \begin_layout Plain Layout data_ibegin/data_ni \end_layout \end_inset attributes. This attribute can be used only when \begin_inset Flex Code status open \begin_layout Plain Layout data_dim=1 \end_layout \end_inset . The size of data_i_index determine the size of the fields dimension of the corresponding domain, that is sent from the model. Value can be negative or greater than \begin_inset Flex Code status open \begin_layout Plain Layout ni \end_layout \end_inset . In this case, the corresponding point will be considered as masked and will not be extracted to enter the workflow. \end_layout \begin_layout Subsection* data_j_index (optional): \emph on 1D-array of integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: data_j_index(:) \end_layout \begin_layout Standard In case of a compressed horizontal domain, define the data indexation for the first dimension. This attribute cannot be used together with \begin_inset Flex Code status open \begin_layout Plain Layout data_jbegin/data_nj \end_layout \end_inset attributes. This attribute can be used only when \begin_inset Flex Code status open \begin_layout Plain Layout data_dim=1 \end_layout \end_inset . The size of data_i_index determine the size of the fields dimension of the corresponding domain, that is sent from the model. Value can be negative or greater than \begin_inset Flex Code status open \begin_layout Plain Layout nj \end_layout \end_inset . In this case, the corresponding point will be considered as masked and will not be extracted to enter the workflow. \end_layout \begin_layout Subsection* mask_1d (optional): \emph on 1D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask(:) \end_layout \begin_layout Standard Defines a 1D mask of a local domain. The masked value will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. This attribute must be of size \begin_inset Flex Code status open \begin_layout Plain Layout ni*nj \end_layout \end_inset . By default no values are masked. \end_layout \begin_layout Subsection* mask_2d (optional): \emph on 2D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask(:,:) \end_layout \begin_layout Standard Defines a 2D mask of a local domain. The masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. This attribute must be of size \begin_inset Flex Code status open \begin_layout Plain Layout (ni,nj) \end_layout \end_inset . By default no values are masked. \end_layout \begin_layout Subsection* domain_ref (optional): string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: domain_ref \end_layout \begin_layout Standard Defines the reference to a domain. All attributes are inherited from the referenced domain with the classic inheritance mechanism. The value assigned to the referenced domain is transmitted to to current domain. \end_layout \begin_layout Subsection* i_index (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: i_index(:) \end_layout \begin_layout Standard Defines the global index of the first dimension of a local domain held by a process. By default the size of the array must be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni*nj \end_layout \end_inset . \end_layout \begin_layout Subsection* j_index (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: j_index(:) \end_layout \begin_layout Standard Defines the global index of the second dimension of a local domain held by a process. By default the size of the array must be \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni*nj \end_layout \end_inset . \end_layout \begin_layout Subsection* comment (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. \end_layout \begin_layout Section Grid attribute reference \end_layout \begin_layout Subsection* name (optional): string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a grid. \end_layout \begin_layout Subsection* description (optional): string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: description \end_layout \begin_layout Standard Defines the descriptions of a grid. \end_layout \begin_layout Subsection* mask_1d (optional): \emph on 1D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_1d(:) \end_layout \begin_layout Standard Defines the mask of a local 1D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_2d (optional): \emph on 2D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_2d(:,:) \end_layout \begin_layout Standard Defines the mask of a local 2D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_3d (optional): \emph on 3D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_3d(:,:,:) \end_layout \begin_layout Standard Define the mask of a local 3D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_4d (optional): \emph on 4D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_4d(:,:,:) \end_layout \begin_layout Standard Define the mask of a local 4D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_5d (optional): \emph on 5D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_5d(:,:,:) \end_layout \begin_layout Standard Define the mask of a local 5D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_6d (optional): \emph on 6D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_6d(:,:,:) \end_layout \begin_layout Standard Define the mask of a local 6D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* mask_7d (optional): \emph on 7D-array of bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: mask_7d(:,:,:) \end_layout \begin_layout Standard Define the mask of a local 7D grid. Masked values will be replaced by the value of the field attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout default_value \end_layout \end_inset in an output file. By default none of the value are masked. \end_layout \begin_layout Subsection* comment (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. Meaningfull for the XIOS workflow. \end_layout \begin_layout Section Field attribute reference \end_layout \begin_layout Subsection* name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a field as it will appear in an output file. If not present, the identifier \begin_inset Flex Strong status collapsed \begin_layout Plain Layout id \end_layout \end_inset will be substituted. \end_layout \begin_layout Subsection* standard_name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: standard_name \end_layout \begin_layout Standard Defines the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout standard_name \end_layout \end_inset attribute as it will appear in the metadata of an output file. \end_layout \begin_layout Subsection* long_name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: long_name \end_layout \begin_layout Standard Defines the long name as it will appear in the metadata of an output file. \end_layout \begin_layout Subsection* expr (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: expr \end_layout \begin_layout Standard Defines the expression for arithmetic or time-integration operations performed on a field. For example if \series bold expr= \begin_inset Quotes erd \end_inset sqrt(@temp2 - pow(@temp, 2)) \begin_inset Quotes erd \end_inset \series default then the variance will be calculated on the incoming flux of the field \series bold temp \series default (given that field temp2 that holds the square of temp was correctly defined). \end_layout \begin_layout Subsection* unit (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: unit \end_layout \begin_layout Standard Defines the unit of a field, as it will apear in the associated metadata in the output file. \end_layout \begin_layout Subsection* operation (mandatory): enumeration \emph on {once, instant, average, maximum, minimum, accumulate} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Standard Defines the temporal operation applied to a field. \end_layout \begin_layout Subsection* freq_op (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: freq_op \end_layout \begin_layout Standard Defines the sampling frequency of a temporal operation, so that field values will be used for temporal sampling at frequency \begin_inset Flex Strong status collapsed \begin_layout Plain Layout freq_op \end_layout \end_inset . It can be also useful for sub-processes called at different frequency in a model. The default value is equal to the file attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout output_freq \end_layout \end_inset for \begin_inset Flex Strong status collapsed \begin_layout Plain Layout instant \end_layout \end_inset operations and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1ts \end_layout \end_inset (1 time step) otherwise. \end_layout \begin_layout Subsection* freq_offset (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: freq_offset \end_layout \begin_layout Standard Defines the offset when \begin_inset Flex Strong status collapsed \begin_layout Plain Layout freq_op \end_layout \end_inset is defined. Accepted values lie between \series bold 0 \series default and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout freq_op - 1ts \end_layout \end_inset . The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout freq_op - 1ts \end_layout \end_inset for fields in the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout write \end_layout \end_inset mode and \series bold 0 \series default for fields in the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout read \end_layout \end_inset mode. \end_layout \begin_layout Subsection* level (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: level \end_layout \begin_layout Standard Defines the output level of a field. The field will be output only if the file attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout output_level \begin_inset Formula $\geq$ \end_inset level \end_layout \end_inset . The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . \end_layout \begin_layout Subsection* prec (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: prec \end_layout \begin_layout Standard Defines the precision in bytes of a field in an output file. Available values are: 2 (integer), 4 (float single precision) and 8 (float double precision). The default value is 4 (float single precision). \end_layout \begin_layout Subsection* enabled (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: enabled \end_layout \begin_layout Standard Defines if a field must be output or not. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout true \end_layout \end_inset . \end_layout \begin_layout Subsection* check_if_active (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: check_if_active \end_layout \begin_layout Standard Sets a check if a field will be used at a given time step. Activating the check may improve performance for fields which are not used frequently, while it can detoriate performance for fields used at each time step. The default value is false. \end_layout \begin_layout Subsection* read_access (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: read_access \end_layout \begin_layout Standard Defines whether a field can be read from the model or not. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout false \end_layout \end_inset . Note that for fields belonging to a file in \series bold \emph on read \series default \emph default \series bold mode \series default , this attribute is always \series bold true \series default . \end_layout \begin_layout Subsection* field_ref (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: field_ref \end_layout \begin_layout Standard Defines the field reference. All attributes will be inherited from the referenced field via the classical inheritance mechanism. The values assigned to the referenced field will be transmitted to the current field to perform temporal operation. \end_layout \begin_layout Subsection* grid_ref (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: grid_ref \end_layout \begin_layout Standard Defines the field grid. Note that only either \begin_inset Flex Strong status collapsed \begin_layout Plain Layout grid_ref \end_layout \end_inset or a combination of \begin_inset Flex Strong status collapsed \begin_layout Plain Layout domain_ref \end_layout \end_inset , \begin_inset Flex Strong status collapsed \begin_layout Plain Layout scalar_ref \end_layout \end_inset or \begin_inset Flex Strong status collapsed \begin_layout Plain Layout axis_ref \end_layout \end_inset can be specified. \end_layout \begin_layout Subsection* domain_ref (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: domain_ref \end_layout \begin_layout Standard Defines the field domain. If the attribute is defined, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout grid_ref \end_layout \end_inset must not be specified. \end_layout \begin_layout Subsection* axis_ref (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: axis_ref \end_layout \begin_layout Standard Defines an axis for the current field. If the attribute is defined, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout grid_ref \end_layout \end_inset must not be specified. \end_layout \begin_layout Subsection* scalar_ref (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: scalar_ref \end_layout \begin_layout Standard Defines a scalar domain for the current field. If the attribute is defined, the attribute \begin_inset Flex Strong status collapsed \begin_layout Plain Layout grid_ref \end_layout \end_inset must not be specified. \end_layout \begin_layout Subsection* grid_path (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: grid_path \end_layout \begin_layout Standard Defines the way operations pass from a grid to other grids, combined with field_ref attribute. Each grid name in \begin_inset Flex Code status open \begin_layout Plain Layout grid_path \end_layout \end_inset must be separated by a comma. All tranformation realated to the grid listed in grid_path will be applyed successively, including the grid destination associated to the destination field. \end_layout \begin_layout Subsection* default_value (optional): \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: default_value \end_layout \begin_layout Standard Defines the value which will be used instead of missing field data. For an entry field (coming from model, or from an input file), if \begin_inset Flex Code status open \begin_layout Plain Layout detect_missing_value \end_layout \end_inset and \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset are defined the values of the field equal to \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset will be replaced by NaN. For output field (read from the model or sent to server), the NaN values will be replaced by \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset , if defined. For masked value, in output, if \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset is defined, the corresponding value will be replaced by \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset , otherwise, the value is undefined and will depend of the initial value of the allocated memory block. \end_layout \begin_layout Subsection* valid_min (optional): \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: valid_min \end_layout \begin_layout Standard Define the minimum validity range of the field as it will be written as a field metadata in the output file, accordingly to CF compliance. \end_layout \begin_layout Subsection* valid_max (optional): \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: valid_max \end_layout \begin_layout Standard Define the maximum validity range of the field as it will be written as a field metadata in the output file, accordingly to CF compliance. \end_layout \begin_layout Subsection* detect_missing_value (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL: detect_missing_value \end_layout \begin_layout Standard For entry field, if \begin_inset Flex Code status open \begin_layout Plain Layout detect_missing_value \end_layout \end_inset is set to true and \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset is defined, the corresponding value will be replaced by NaN (see \begin_inset Flex Code status open \begin_layout Plain Layout default_value \end_layout \end_inset attribute). This attribute is also used during temporal operation such as averaging, minimum, maximum, accumulate..., to detect NaN value and remove it from the computation (otherwise the result will be NaN). It is used also in some spatial transformation, but will be replaced later by a specific detect_missing value attribute related to the transformation. \end_layout \begin_layout Subsection* add_offset (optional): \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION: add_offset \end_layout \begin_layout Standard Sets the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout add_offset \end_layout \end_inset metadata CF attribute in an output file. In output, the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout add_offset \end_layout \end_inset value will be subtracted from the field values. It can be used together with \begin_inset Flex Code status open \begin_layout Plain Layout scale_factor \end_layout \end_inset and \begin_inset Flex Code status open \begin_layout Plain Layout prec \end_layout \end_inset attributes in order to reduce the data range and the volume of written data. Fo reading, this attribute is also taking into account to \begin_inset Quotes eld \end_inset decompress \begin_inset Quotes erd \end_inset data. \end_layout \begin_layout Subsection* scale_factor: \emph on double \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION: scale_factor \end_layout \begin_layout Standard Sets the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout scale_factor \end_layout \end_inset metadata CF attribute in an output file. In output, the field values will be divided by the \begin_inset Flex Strong status collapsed \begin_layout Plain Layout scale_factor \end_layout \end_inset value. It can be used together with \begin_inset Flex Code status open \begin_layout Plain Layout add_offset \end_layout \end_inset and \begin_inset Flex Code status open \begin_layout Plain Layout prec \end_layout \end_inset attributes in order to reduce the data range and the volume of written data. Fo reading, this attribute is also taking into account to \begin_inset Quotes eld \end_inset decompress \begin_inset Quotes erd \end_inset data. \end_layout \begin_layout Subsection* compression_level (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: compression_level \end_layout \begin_layout Standard Defines whether a field should be compressed using NetCDF-4 built-in compression. The compression level must range from 0 to 9. A higher compression level means a better compression at the cost of using more processing power. The default value is inherited from the file attribute \series bold compression_level \series default . \end_layout \begin_layout Subsection* indexed_output (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: indexed_output \end_layout \begin_layout Standard Defines whether field data must be output as an indexed grid instead of a full grid whenever possible. The default value is \series bold \emph on false \series default \emph default . \end_layout \begin_layout Subsection* ts_enabled (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: ts_enabled \end_layout \begin_layout Standard Defines whether a field can be output as a timeseries. The default value is \series bold \emph on false \series default \emph default . A field will be tagged as timeseries if \begin_inset Flex Code status open \begin_layout Plain Layout ts_enabled \end_layout \end_inset is set to true, and the associated file attribute timeserie is set to \begin_inset Flex Code status open \begin_layout Plain Layout only \end_layout \end_inset , \begin_inset Flex Code status open \begin_layout Plain Layout both \end_layout \end_inset or \begin_inset Flex Code status open \begin_layout Plain Layout exclusive \end_layout \end_inset . A field tagged as timeseries will be output alone in a specific file suffixed by the field name. \end_layout \begin_layout Subsection* ts_split_freq (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: ts_split_freq \end_layout \begin_layout Standard Defines the splitting frequency that should be used for a timeseries if it has been requested. By default the attribute value is inherited from the file attribute \series bold split_freq \series default . \end_layout \begin_layout Subsection* cell_methods (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: cell_methods \end_layout \begin_layout Standard Defines the cell methods field attribute. it will be written as associated field metadata, accordingly to CF compliance. \end_layout \begin_layout Subsection* cell_methods_mode (optional): enumeration \emph on {overwrite, prefix, suffix, none} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: cell_methods_mode \end_layout \begin_layout Standard Defines the cell methods mode of a field. \end_layout \begin_layout Standard XIOS defined itself the cell_method string, taking into account the operations applied on the field. But in some case it can modified, with the \begin_inset Flex Code status open \begin_layout Plain Layout cell_methods \end_layout \end_inset attribute. \begin_inset Flex Code status open \begin_layout Plain Layout overwrite \end_layout \end_inset will replace the computed default string by the \begin_inset Flex Code status open \begin_layout Plain Layout cell_methods \end_layout \end_inset attribute, \begin_inset Flex Code status open \begin_layout Plain Layout prefix \end_layout \end_inset will prefix the default string, and \begin_inset Flex Code status open \begin_layout Plain Layout suffix \end_layout \end_inset will suffix the default string. \end_layout \begin_layout Subsection* comment (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. Meaningfull on XIOS workflow. \end_layout \begin_layout Section Variable attribute reference \end_layout \begin_layout Subsection* name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a variable as it will appear in an output file. If not present, the variable \begin_inset Flex Strong status collapsed \begin_layout Plain Layout id \end_layout \end_inset will be used. \end_layout \begin_layout Subsection* type (mandatory): enumeration {bool, int, int32, int16, int64, float, double, string} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Defines the type of a variable. Note that the \series bold \emph on int \series default \emph default type is a synonym for \series bold \emph on int32 \series default \emph default . \end_layout \begin_layout Subsection* ts_target (optional): enumeration {file, field, both, none} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: ts_target \end_layout \begin_layout Standard This attribute specify if a variable present in a file (global attribute) must be reported in each timeseries generated file. If \begin_inset Flex Code status open \begin_layout Plain Layout ts_target=none \end_layout \end_inset , the variable is not included, if \begin_inset Flex Code status open \begin_layout Plain Layout ts_target=file \end_layout \end_inset , the variable is included in each generated file as global attribute, if \begin_inset Flex Code status open \begin_layout Plain Layout ts_target=field \end_layout \end_inset , the variable is included as field attribute associated to the generated files (field metadata), if \begin_inset Flex Code status open \begin_layout Plain Layout ts_target=both \end_layout \end_inset , the varible is included twice as file global attribute and field attribute. \end_layout \begin_layout Section File attribute reference \end_layout \begin_layout Subsection* name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name \end_layout \begin_layout Standard Defines the name of a file. If not specified a name is automaticaly defined from the file id. For netcdf output, a \begin_inset Quotes eld \end_inset \begin_inset Flex Code status open \begin_layout Plain Layout .nc \end_layout \end_inset \begin_inset Quotes erd \end_inset suffix will be added to the file name. \end_layout \begin_layout Subsection* description (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: description \end_layout \begin_layout Standard Defines the description of a file. \end_layout \begin_layout Subsection* name_suffix (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: name_suffix \end_layout \begin_layout Standard Defines a suffix added to the file name. \end_layout \begin_layout Subsection* min_digits (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: min_digits \end_layout \begin_layout Standard For the \series bold multiple_file \series default mode defines the minimum number of digits of the suffix describing the server rank which will be appended to the file name. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset (no server rank suffix is added). \end_layout \begin_layout Subsection* output_freq (mandatory): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: output_freq \end_layout \begin_layout Standard Defines the output frequency for the current file. \end_layout \begin_layout Subsection* output_level (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: output_level \end_layout \begin_layout Standard Defines the output level for all fields of the current file. The field is output only if the field attribute \series bold level \series default is less or equal to the file attribute \series bold output_level \series default . \end_layout \begin_layout Subsection* sync_freq (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: sync_freq \end_layout \begin_layout Standard Defines the frequency for flushing the current file onto a disk. It may result in poor performances but data will be written even if a file is not yet closed. \end_layout \begin_layout Subsection* split_freq (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: split_freq \end_layout \begin_layout Standard Defines the frequency for splitting the current file. The start and end dates will be added to the file name (see \begin_inset Flex Emph status collapsed \begin_layout Plain Layout \series bold \emph on split_freq_format \end_layout \end_inset attribute). By default no splitting is done. \end_layout \begin_layout Subsection* split_freq_format (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: split_freq_format \end_layout \begin_layout Standard Defines the format of the split date suffixed to a file. It can contain any character, \emph on \begin_inset Flex Code status collapsed \begin_layout Plain Layout %y \end_layout \end_inset \emph default will be replaced by the year (4 characters), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %mo \end_layout \end_inset by the month (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %d \end_layout \end_inset by the day (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %h \end_layout \end_inset by the hour (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %mi \end_layout \end_inset by the minute (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %s \end_layout \end_inset by the second (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %S \end_layout \end_inset by the number of seconds since the time origin and \begin_inset Flex Code status collapsed \begin_layout Plain Layout %D \end_layout \end_inset by the number of full days since the time origin. The default behavior is to create a suffix with the date until the smaller non zero unit. For example, in one day split frequency, the hour, minute and second will not appear in the suffix, only year, month and day. \end_layout \begin_layout Subsection* split_start_offset (optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: split_start_offset \end_layout \begin_layout Standard Defines the offset of the start splitting date when \begin_inset Flex Code status open \begin_layout Plain Layout split_freq \end_layout \end_inset attribute is enabled. This attribute is used only to shift the start date of the splitting format. It has no impact on the real splitting date. \end_layout \begin_layout Subsection* split_end_offset(optional): \emph on duration \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code TYPE(xios_duration) :: split_end_offset \end_layout \begin_layout Standard Defines the offset of the end splitting date when \begin_inset Flex Code status open \begin_layout Plain Layout split_freq \end_layout \end_inset attribute is enabled. This attribute is used only to shift the end date of the splitting format. It has no impact on the real splitting date. \end_layout \begin_layout Subsection* split_last_date (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: split_last_date \end_layout \begin_layout Standard Define the end splitting date when \begin_inset Flex Code status open \begin_layout Plain Layout split_freq \end_layout \end_inset attribute is enabled. If \begin_inset Flex Code status open \begin_layout Plain Layout split_last_date \end_layout \end_inset is lesser than the compute end splitting date, then the end splitting date will be replaced by \begin_inset Flex Code status open \begin_layout Plain Layout split_last_date \end_layout \end_inset in the file name. This attribute can be usefull when a simulation is over before the computed splitting date, to be consistent with the file internal calendar. The format of \begin_inset Flex Code status open \begin_layout Plain Layout split_last_date \end_layout \end_inset string attribute must be consistent with a date. \end_layout \begin_layout Subsection* enabled (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: enabled \end_layout \begin_layout Standard Defines if a file must be written/read or not. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout true \end_layout \end_inset . \end_layout \begin_layout Subsection* mode (optional): \emph on enumeration {read, write} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: mode \end_layout \begin_layout Standard Defines whether a file will be read or written. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout write \end_layout \end_inset . \end_layout \begin_layout Subsection* type (optionnal): \emph on enumeration {one_file, multiple_file} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Defines the type of a file: \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on multiple_file \end_layout \end_inset : one file by server using sequential netcdf writing, \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on one_file \end_layout \end_inset : one single global file is wrote using netcdf4 parallel access. The default value is \begin_inset Flex Code status open \begin_layout Plain Layout multiple_file \end_layout \end_inset . \end_layout \begin_layout Subsection* format (optional): \emph on enumeration {netcdf4, netcdf4_classic} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: format \end_layout \begin_layout Standard Define the format of a file: \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on netcdf4 \end_layout \end_inset : the HDF5 format will be used, \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on netcdf4 \emph default _ \emph on classic \end_layout \end_inset : the classic NetCDF format will be used. The default value is \series bold \emph on netcdf4 \series default \emph default . Note that the \series bold \emph on netcdf4 \emph default _ \emph on classic \series default \emph default format can be used with the attribute \series bold type \series default set to \series bold \emph on one_file \series default \emph default only if the NetCDF4 library was compiled with Parallel NetCDF support (–enable- pnetcdf). \end_layout \begin_layout Subsection* par_access (optional): \emph on enumeration {collective, independent} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: par_access \end_layout \begin_layout Standard For parallel writing, defines which type of MPI calls will be used. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on collective \end_layout \end_inset . Nota : this attribute is now deprecated, and has no effect on I/O parallelism. \end_layout \begin_layout Subsection* read_metadata_par (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: read_metadata_par \end_layout \begin_layout Standard For files in the read mode, defines if parallel or serial I/O will be used by model processes for reading file metadata. The default value is false implying serial I/O for reading metadata on client side. \end_layout \begin_layout Subsection* convention (optional): \emph on enumeration {CF, UGRID} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: convention \end_layout \begin_layout Standard Defines the file conventions. The netcdf file can be output following the CF convention (1.7) or the UGRID convention, usefull for unstructured mesh. By default the CF conventions are followed. The global file attribute \begin_inset Flex Code status open \begin_layout Plain Layout Conventions \end_layout \end_inset will be added in the output file following the specified value. \end_layout \begin_layout Subsection* convention_str (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: convention_str \end_layout \begin_layout Standard Defines the \series bold Conventions \series default attribute to be added to file global attributes. This attribute will overwrite the \begin_inset Flex Code status open \begin_layout Plain Layout Conventions \end_layout \end_inset global file attribute generated by the \begin_inset Flex Code status open \begin_layout Plain Layout convention \end_layout \end_inset XIOS attribute. \end_layout \begin_layout Subsection* append (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: append \end_layout \begin_layout Standard If this attribute is set to \begin_inset Flex Code status open \begin_layout Plain Layout true \end_layout \end_inset and if the file is present, the file is open, and data will be append at the specified time record. If the time record already exists, data will be overwritten, otherwise a new time record is created and data is appended. If append is set to \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset , a new file will be created, even if a old file is present, overwritting it. The default value is \begin_inset Flex Code status open \begin_layout Plain Layout append = false \end_layout \end_inset . \end_layout \begin_layout Subsection* compression_level (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: compression_level \end_layout \begin_layout Standard Defines whether the fields should be compressed using NetCDF-4 built-in compression by default. The compression level must range from 0 to 9. A higher compression level means a better compression at the cost of using more processing power. The default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout \emph on 0 \end_layout \end_inset (no compression). \end_layout \begin_layout Subsection* time_counter (optional): \emph on enumeration {centered, instant, record, exclusive, centered_exclusive, instant_e xclusive, none} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_counter \end_layout \begin_layout Standard Defines how the \begin_inset Quotes eld \end_inset time_counter \begin_inset Quotes erd \end_inset variable will be output: \end_layout \begin_layout Itemize \series bold \emph on centered \series default \emph default : use centered times (default option for all field operations except for instant) \end_layout \begin_layout Itemize \series bold \emph on instant \series default \emph default : use instant times (default option for field operation \series bold instant \series default ) \end_layout \begin_layout Itemize \series bold \emph on record \series default \emph default : use record indexes \end_layout \begin_layout Itemize \series bold \shape italic centered_exclusive: \series default \shape default do not include centered times into an output file \end_layout \begin_layout Itemize \series bold \shape italic \emph on instant_ \emph default exclusive: \series default \shape default do not include instant times into an output file \end_layout \begin_layout Itemize \series bold \shape italic exclusive: \series default \shape default include neither instant times nor centered times into an output file \end_layout \begin_layout Itemize \series bold \emph on none \series default \emph default : do not output the variable. \end_layout \begin_layout Standard The default value is \begin_inset Flex Code status open \begin_layout Plain Layout centered \end_layout \end_inset if there are only centered time axis. It will be \begin_inset Flex Code status open \begin_layout Plain Layout instant \end_layout \end_inset if there are only instant time axis. If both instant and centered time axis are present, the default value will be \begin_inset Flex Code status open \begin_layout Plain Layout centered \end_layout \end_inset . \end_layout \begin_layout Subsection* time_counter_name (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_counter_name \end_layout \begin_layout Standard Define the name of a time counter. The default value is \begin_inset Flex Code status open \begin_layout Plain Layout time_counter \end_layout \end_inset . \end_layout \begin_layout Subsection* timeseries (optional): \emph on enumeration {none, only, both, exclusive} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_series \end_layout \begin_layout Standard Defines whether the timeseries must be output: \end_layout \begin_layout Itemize \series bold \emph on none \series default \emph default : no timeseries is outputted, only the regular file \end_layout \begin_layout Itemize \series bold \emph on only \series default \emph default : only the timeseries is outputted, the regular file is not created \end_layout \begin_layout Itemize \series bold \emph on both \series default \emph default : both the timeseries and the regular file are outputted. \end_layout \begin_layout Itemize \series bold \emph on exclusive \series default \emph default : the timeseries is outputted and a regular file is created with only the fields which were not marked for output as a timeseries (if any). \end_layout \begin_layout Standard When time series is enabled, each tagged field (see \begin_inset Flex Code status open \begin_layout Plain Layout ts_enabled \end_layout \end_inset field attribute) is output into a separate file. The default value is \series bold \emph on none \series default \emph default . \end_layout \begin_layout Subsection* ts_prefix (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: ts_prefix \end_layout \begin_layout Standard Defines the prefix to use for the name of the timeseries files. By default the file name will be used. \end_layout \begin_layout Subsection* time_units (optional): \emph on enumeration {seconds, days} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_units \end_layout \begin_layout Standard Define the time unit of the time axis present in the file. Two choices are possible : \begin_inset Flex Code status open \begin_layout Plain Layout seconds \end_layout \end_inset or \begin_inset Flex Code status open \begin_layout Plain Layout days \end_layout \end_inset . The default value is \begin_inset Flex Code status open \begin_layout Plain Layout seconds \end_layout \end_inset . \end_layout \begin_layout Subsection* record_offset (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: record_offset \end_layout \begin_layout Standard Defines an offset for the time records associated to the file. For a file in \begin_inset Flex Code status open \begin_layout Plain Layout read \end_layout \end_inset mode, the first record sent will be shift of \begin_inset Flex Code status open \begin_layout Plain Layout record_offset \end_layout \end_inset value instead of 0. For file in write mode, the first time record to be output will begin from \begin_inset Flex Code status open \begin_layout Plain Layout record_offset \end_layout \end_inset value. The default value is 0. \end_layout \begin_layout Subsection* cyclic (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: cyclic \end_layout \begin_layout Standard If the option is activated for fields to be read, then upon reaching the last time record, reading will continue \begin_inset Quotes eld \end_inset cycle \begin_inset Quotes erd \end_inset at the first time record. The default value is false. \end_layout \begin_layout Subsection* time_stamp_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_stamp_name \end_layout \begin_layout Standard Defines the timestamp name of the date and time when the program was executed which will be written into an output file. The default value is \begin_inset Quotes eld \end_inset timeStamp \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Subsection* time_stamp_format (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: time_stamp_format \end_layout \begin_layout Standard Defines the timestamp format of the date and time when the program was executed to be written into an output file. It can contain any character. \emph on \begin_inset Flex Code status collapsed \begin_layout Plain Layout %Y \end_layout \end_inset \emph default will be replaced by the 4-digit year (4 digits), while \emph on \begin_inset Flex Code status collapsed \begin_layout Plain Layout %y \end_layout \end_inset \emph default will be replaced by the 2-digit year. \begin_inset Flex Code status collapsed \begin_layout Plain Layout %m \end_layout \end_inset will be by the 2-digit month, while %b will be replaced by the 3-character month. \begin_inset Flex Code status collapsed \begin_layout Plain Layout %d \end_layout \end_inset will be replaced by the day (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %H \end_layout \end_inset by the hour (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %M \end_layout \end_inset by the minute (2 char), \begin_inset Flex Code status collapsed \begin_layout Plain Layout %S \end_layout \end_inset by the number of seconds, \begin_inset Flex Code status collapsed \begin_layout Plain Layout %D \end_layout \end_inset by the date in the MM/DD/YY format. \end_layout \begin_layout Subsection* uuid_name (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: uuid_name \end_layout \begin_layout Standard Defines the name of the global attribute designing the UUID of the file. The default global attribute is \begin_inset Quotes eld \end_inset \begin_inset Flex Code status open \begin_layout Plain Layout uuid \end_layout \end_inset \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Subsection* uuid_format (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: uuid_format \end_layout \begin_layout Standard Defines the format of file's UUID. In the \begin_inset Flex Code status open \begin_layout Plain Layout uuid_format \end_layout \end_inset string, the sub-string \begin_inset Flex Code status open \begin_layout Plain Layout %uuid% \end_layout \end_inset will be replaced by string computed UUID. \end_layout \begin_layout Subsection* comment (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout string \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: comment \end_layout \begin_layout Standard Allows a user to set a comment. \end_layout \begin_layout Section Transformation attribute reference \end_layout \begin_layout Subsection reduce_scalar_to_scalar \end_layout \begin_layout Subsection* operation (mandatory): \emph on enumeration {min, max, sum, average} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Standard Defines the type of reduction operation performed on the scalar. Like a scalar is redondant accross process (except if masked), the reduction will be similar to a MPI reduction accros procces. \end_layout \begin_layout Subsection extract_axis_to_scalar \end_layout \begin_layout Subsection* position: \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: position \end_layout \begin_layout Standard Global index of a point on an axis to be extracted into a scalar. \end_layout \begin_layout Standard \end_layout \begin_layout Subsection interpolate_axis \end_layout \begin_layout Subsection* type (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Defines the interpolation type on an axis. For now only polynomial interpolation is available, so this attribute is currently meaningless. \end_layout \begin_layout Subsection* order (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: order \end_layout \begin_layout Standard Defines the order of interpolation. The default value is 2. \end_layout \begin_layout Subsection* coordinate (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: coordinate \end_layout \begin_layout Standard Defines the coordinate associated with an axis on which interpolation will be performed. \end_layout \begin_layout Subsection reduce_axis_to_axis \end_layout \begin_layout Subsection* operation (mandatory): \emph on enumeration {min, max, sum, average} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Standard Defines a reduction operation performed on an axis across model processes. \end_layout \begin_layout Subsection reduce_axis_to_scalar \end_layout \begin_layout Standard Reduces data defined on an axis into a scalar value. \end_layout \begin_layout Subsection* operation (mandatory): \emph on enumeration {min, max, sum, average} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Subsection zoom_axis \end_layout \begin_layout Subsection* begin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: begin \end_layout \begin_layout Standard Defines the beginning index of a zoomed region on a global axis. The attribute value should be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo-1 \end_layout \end_inset of the associated axis. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . \end_layout \begin_layout Subsection* n (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n \end_layout \begin_layout Standard Defines the size of a zoomed region on a global axis. The attribute value should be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset of the associated axis. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset of the associated axis. \end_layout \begin_layout Subsection compute_connectivity_domain \end_layout \begin_layout Subsection* n_neighbor: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 1D-array of integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n_neighbor(:) \end_layout \begin_layout Subsection* local_neighbor: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout 2D-array of integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: local_neighbor(:,:) \end_layout \begin_layout Subsection* n_neighbor_max: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: n_neighbor_max \end_layout \begin_layout Subsection extract_domain_to_axis \end_layout \begin_layout Subsection* position (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: position \end_layout \begin_layout Standard Defines the index on a domain starting which an axis will be extracted along the direction specified with the \series bold direction \series default attribute. \end_layout \begin_layout Subsection* direction (mandatory): \emph on enumeration {iDir, jDir} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: direction \end_layout \begin_layout Standard Defines the domain dimension along which an axis will be extracted. \begin_inset Flex Code status open \begin_layout Plain Layout iDir \end_layout \end_inset means along the direction i, \begin_inset Flex Code status open \begin_layout Plain Layout jDir \end_layout \end_inset along the direction j. \end_layout \begin_layout Subsection interpolate_domain \end_layout \begin_layout Subsection* order (optional): \emph on integer \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: order \end_layout \begin_layout Standard Defines the order of interpolation. This attribute is only for internal interpolation module. Currently, only first order and second order are available for conservative interpolations. The default value is \begin_inset Flex Code status open \begin_layout Plain Layout 2 \end_layout \end_inset . \end_layout \begin_layout Subsection* renormalize (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: renormalize \end_layout \begin_layout Standard This flag is usefull only when targeted cells intersect masked source cells. In case a field corresponding to a flux value, the result of the interpolation remain correct. Otherwise for intensive field, the computed value need to be renormalize prorate of the non masked intersected area to remain correct. This flag activate these functionnality. Default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection* quantitity (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: quantity \end_layout \begin_layout Standard If this flag is set, the interpolation will preserve extensive property of the field. Default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection* use_area (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: use_area \end_layout \begin_layout Standard If this flag is set, given area for source and target domain (if any) will be used to renormalize compute weight by the ratio given area / computed area. Default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection* detect_missing_value (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: detect_missing_value \end_layout \begin_layout Standard If flag is set to true, input data of the field to be interpolated are analyzed to detect missing values. Detected cells are considered as masked and will be taking into account for interpolation in a similar way than the domain mask. Default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection* mode (optionnal): \emph on enumeration {compute, read, read_or_compute} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: mode \end_layout \begin_layout Standard Define if interpolation must be computed (compute), read from file (read), or if find file weight, read otherwise compute (read_or_compute). Default value is \begin_inset Flex Code status open \begin_layout Plain Layout compute \end_layout \end_inset . \end_layout \begin_layout Subsection* write_weight (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: write_weight \end_layout \begin_layout Standard If this flag is set, the computed weights will be written in file. If weights are already read from a file, nothing will happen. Default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection* weight_filename (optional): \emph on string \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: weight_filename \end_layout \begin_layout Standard Define the file name where the weights will be written or read. If not specified when trying to read or write, a name will be automatically generated. \end_layout \begin_layout Subsection* read_write_convention (optionnal): \emph on enumeration {c, fortran} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: read_write_convention \end_layout \begin_layout Standard Define the convention for pair of global index source and destination for wich a weight is defined. For C convention, index will begin to 0, for fortran, index will begin to 1. Usefull only for read ar write weights from/to a file. Default value is corresponding to C convention. \end_layout \begin_layout Subsection reduce_domain_to_axis \end_layout \begin_layout Subsection* direction: \emph on enumeration {iDir, jDir} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: direction \end_layout \begin_layout Standard Defines the domain dimension along which a reduction of the domain into an axis will be performed. \begin_inset Flex Code status open \begin_layout Plain Layout iDir \end_layout \end_inset means along the direction i, \begin_inset Flex Code status open \begin_layout Plain Layout jDir \end_layout \end_inset along the direction j. \end_layout \begin_layout Subsection* operation (mandatory): \emph on enumeration {min, max, sum, average} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Standard Defines the reduction operation performed on the domain. \end_layout \begin_layout Subsection* local (optionnal): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: local \end_layout \begin_layout Standard Defines whether the reduction should be performed locally on data owned by each process or on the global domain. \end_layout \begin_layout Subsection reduce_domain_to_scalar \end_layout \begin_layout Standard Reduces data defined on a domain into a scalar value. \end_layout \begin_layout Subsection* operation (mandatory): \emph on enumeration {min, max, sum, average} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: operation \end_layout \begin_layout Standard Defines the reduction operation performed on the domain. \end_layout \begin_layout Subsection* local (optionnal): \emph on bool \emph default \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: local \end_layout \begin_layout Standard Defines whether the reduction should be performed locally on data owned by each process or on the global domain. The default value is \begin_inset Flex Code status open \begin_layout Plain Layout false \end_layout \end_inset . \end_layout \begin_layout Subsection reorder_domain \end_layout \begin_layout Subsection* invert_lat (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: invert_lat \end_layout \begin_layout Standard Defines whether the latitude should be inverted. The default value is false. \end_layout \begin_layout Subsection* shift_lon_fraction (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: shift_lon_fraction \end_layout \begin_layout Standard Defines the longitude offset. The value of the parameter represents a fraction of \series bold ni_glo \series default . Default value is 0. \end_layout \begin_layout Subsection* min_lon (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: min_lon \end_layout \begin_layout Standard If both, \series bold min_lon \series default and \series bold max_lon \series default , are defined, a domain will be reordered with latitude values starting from \series bold min_lon \series default and ending at \series bold max_lon \series default . \end_layout \begin_layout Subsection* max_lon (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: max_lon \end_layout \begin_layout Standard If both, \series bold min_lon \series default and \series bold max_lon \series default , are defined, a domain will be reordered with latitude values starting from \series bold min_lon \series default and ending at \series bold max_lon \series default . \end_layout \begin_layout Subsection expand_domain \end_layout \begin_layout Subsection* order: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: order \end_layout \begin_layout Standard Define the size of the halo expansion. \end_layout \begin_layout Subsection* type (optional): \emph on enumeration {node, edge} \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code CHARACTER(LEN=*) :: type \end_layout \begin_layout Standard Defines whether the node or edge connectivity should be calculated for the expanded domain. \end_layout \begin_layout Subsection* i_periodic (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: i_periodic \end_layout \begin_layout Standard If the attribute value is true, values of fields defined on the expanded domain will be duplicated from those of the original domain periodically along the first dimension. The default value is false (masked values on the expanded domain). \end_layout \begin_layout Subsection* j_periodic (optional): \emph on bool \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code LOGICAL :: j_periodic \end_layout \begin_layout Standard If the attribute value is true, values of fields defined on the expanded domain will be duplicated from those of the original domain periodically along the second dimension. The default value is false (masked values on the expanded domain). \end_layout \begin_layout Subsection zoom_domain \end_layout \begin_layout Subsection* ibegin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: ibegin \end_layout \begin_layout Standard Defines the beginning index of the zoomed region on the first dimension of the global domain. This must be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo-1 \end_layout \end_inset of the associated dimension of domain. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined then all the rest should be specified by a user as well. \end_layout \begin_layout Subsection* ni (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: ni \end_layout \begin_layout Standard Define the size of zoomed region on the first dimension of the global domain. This must be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo \end_layout \end_inset of the associated dimension of domain. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout ni_glo \end_layout \end_inset of the dimension of domain. Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined then all the rest should be specified by a user as well. \end_layout \begin_layout Subsection* jbegin (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: jbegin \end_layout \begin_layout Standard Define the beginning index of the zoomed region on the second dimension of the global domain. This must be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo-1 \end_layout \end_inset of the associated dimension of domain. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 0 \end_layout \end_inset . Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined then all the rest should be specified by a user as well. \end_layout \begin_layout Subsection* nj (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout integer \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code INTEGER :: nj \end_layout \begin_layout Standard Define the size of zoomed region on the second dimension of the global domain. The attribute value should be an integer between \begin_inset Flex Strong status collapsed \begin_layout Plain Layout 1 \end_layout \end_inset and \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset of the associated dimension of domain. If not specified the default value is \begin_inset Flex Strong status collapsed \begin_layout Plain Layout nj_glo \end_layout \end_inset of the dimension of domain. Note that if one of the zoom attributes (ibegin, ni, jbegin or nj) is defined then all the rest should be specified by a user as well. \end_layout \begin_layout Subsection generate_rectilinear_domain \end_layout \begin_layout Subsection* lon_start (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lon_start \end_layout \begin_layout Standard Along with \series bold lon_end \series default , the attribute defines the longitude range of a generated domain. \end_layout \begin_layout Subsection* lon_end (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lon_end \end_layout \begin_layout Standard Along with \series bold lon_start \series default , the attribute defines the longitude range of a generated domain. \end_layout \begin_layout Subsection* lat_start (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lat_start \end_layout \begin_layout Standard Along with \series bold lat_end \series default , the attribute defines the latitude range of a generated domain. \end_layout \begin_layout Subsection* lat_end (optional): \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: lat_end \end_layout \begin_layout Standard Along with \series bold lat_start \series default , the attribute defines the latitude range of a generated domain. \end_layout \begin_layout Subsection* bounds_lon_start: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lon_start \end_layout \begin_layout Standard Attributes \series bold bounds_lon_start \series default and \series bold bounds_lon_start \series default set the longitude range of a generated domain. If both sets, \series bold (lon_start, lon_end) \series default and \series bold (bounds_lon_start, bounds_lon_end) \series default , are specified then the bound attributes will be ignored. \end_layout \begin_layout Subsection* bounds_lon_end: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lon_end \end_layout \begin_layout Standard Attributes \series bold bounds_lon_start \series default and \series bold bounds_lon_start \series default set the longitude range of a generated domain. If both sets, \series bold (lon_start, lon_end) \series default and \series bold (bounds_lon_start, bounds_lon_end) \series default , are specified then the bound attributes will be ignored. \end_layout \begin_layout Subsection* bounds_lat_start: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lat_start \end_layout \begin_layout Standard Attributes \series bold bounds_lat_start \series default and \series bold bounds_lat_start \series default set the latitude range of a generated domain. If both sets, \series bold (lat_start, lat_end) \series default and \series bold (bounds_lat_start, bounds_lat_end) \series default , are specified then the bound attributes will be ignored. \end_layout \begin_layout Subsection* bounds_lat_end: \begin_inset Flex Emph status collapsed \begin_layout Plain Layout double \end_layout \end_inset \end_layout \begin_layout Standard Fortran: \end_layout \begin_layout LyX-Code DOUBLE PRECISION :: bounds_lat_end \end_layout \begin_layout Standard Attributes \series bold bounds_lat_start \series default and \series bold bounds_lat_start \series default set the latitude range of a generated domain. If both sets, \series bold (lat_start, lat_end) \series default and \series bold (bounds_lat_start, bounds_lat_end) \series default , are specified then the bound attributes will be ignored. \end_layout \begin_layout Chapter Fortran interface reference \end_layout \begin_layout Section* Initialization \end_layout \begin_layout Subsection* XIOS initialization \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_initialize(client_id, local_comm, return_comm) \end_layout \begin_layout LyX-Code CHARACTER(LEN=*),INTENT(IN) :: client_id \end_layout \begin_layout LyX-Code INTEGER,INTENT(IN),OPTIONAL :: local_comm \end_layout \begin_layout LyX-Code INTEGER,INTENT(OUT),OPTIONAL :: return_comm \end_layout \begin_layout Subsubsection* Argument: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout client_id \end_layout \end_inset : client identifier \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset : MPI communicator of the client \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout return_comm \end_layout \end_inset : split return MPI communicator \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine must be called before any other call of MPI client library. It may be able to initialize MPI library (calling \begin_inset Flex Code status collapsed \begin_layout Plain Layout MPI_Init \end_layout \end_inset ) if not already initialized. Since XIOS is able to work in client/server mode (parameter \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_server=true \end_layout \end_inset ), the global communicator must be split and a local split communicator is returned to be used by the client model for it own purpose. If more than one model is present, XIOS could be interfaced with the OASIS coupler (compiled with \begin_inset Flex Code status collapsed \begin_layout Plain Layout -using_oasis \end_layout \end_inset option and parameter \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_oasis=true \end_layout \end_inset ), so in this case, the splitting would be done globally by OASIS. \end_layout \begin_layout Itemize If MPI is not initialized, XIOS would initialize it calling MPI_Init function. In this case, the MPI finalization would be done by XIOS in the \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_finalize \end_layout \end_inset subroutine, and must not be done by the model. \end_layout \begin_layout Itemize If OASIS coupler is not used (using_oasis=false) \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize If server mode is not activated ( \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_server=false \end_layout \end_inset ): if local_comm MPI communicator is specified then it would be used for internal MPI communication otherwise \begin_inset Flex Code status collapsed \begin_layout Plain Layout MPI_COMM_WORLD \end_layout \end_inset communicator would be used by default. A copy of the communicator (of \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout MPI_COMM_WORLD \end_layout \end_inset ) would be returned in return_comm argument. If \begin_inset Flex Code status collapsed \begin_layout Plain Layout return_comm \end_layout \end_inset is not specified, then \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout MPI_COMM_WORLD \end_layout \end_inset can be used by the model for it own communication. \end_layout \begin_layout Itemize If server mode is activated ( \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_server=true \end_layout \end_inset ): \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset must not be specified since the global \begin_inset Flex Code status collapsed \begin_layout Plain Layout MPI_COMM_WORLD \end_layout \end_inset communicator would be split by XIOS. The split communicator is returned in \begin_inset Flex Code status collapsed \begin_layout Plain Layout return_comm \end_layout \end_inset argument. \end_layout \end_deeper \begin_layout Itemize If OASIS coupler is used ( \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_oasis=true \end_layout \end_inset ) \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize If server mode is not enabled ( \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_server=false \end_layout \end_inset ) \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize If \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset is specified, it means that OASIS has been initialized by the model and global communicator has been already split previously by OASIS, and passed as \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset argument. The returned communicator would be a duplicate copy of \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset . \end_layout \begin_layout Itemize Otherwise: if MPI was not initialized, OASIS will be initialized calling \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_init_comp_proto \end_layout \end_inset subroutine. In this case, XIOS will call \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_terminate_proto \end_layout \end_inset when \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_finalized \end_layout \end_inset is called. The split communicator is returned in \begin_inset Flex Code status collapsed \begin_layout Plain Layout return_comm \end_layout \end_inset argument using \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_get_localcomm_proto \end_layout \end_inset return argument. \end_layout \end_deeper \begin_layout Itemize If server mode is enabled ( \begin_inset Flex Code status collapsed \begin_layout Plain Layout using_server=true \end_layout \end_inset ) \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize If \begin_inset Flex Code status collapsed \begin_layout Plain Layout local_comm \end_layout \end_inset is specified, it means that OASIS has been initialized by the model and global communicator has been already split previously by OASIS, and passed as local_comm argument. The returned communicator return_comm would be a split communicator given by OASIS. \end_layout \begin_layout Itemize Otherwise: if MPI was not initialized, OASIS will be initialized calling \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_init_comp_proto \end_layout \end_inset subroutine. In this case, XIOS will call \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_terminate_proto \end_layout \end_inset when \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_finalized \end_layout \end_inset is called. The split communicator is returned in \begin_inset Flex Code status collapsed \begin_layout Plain Layout return_comm \end_layout \end_inset argument using \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_get_localcomm_proto \end_layout \end_inset return argument. \end_layout \end_deeper \end_deeper \begin_layout Section* Finalization \end_layout \begin_layout Subsection* XIOS finalization \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_finalize() \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Standard None \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This call must be done at the end of the simulation for a successful execution. It gives the end signal to the xios server pools to finish it execution. If MPI has been initialize by XIOS the MPI_Finalize will be called. If OASIS coupler has been initialized by XIOS, then finalization will be done calling \begin_inset Flex Code status collapsed \begin_layout Plain Layout prism_terminate_proto \end_layout \end_inset subroutine. \end_layout \begin_layout Section* Tree elements management subroutines \end_layout \begin_layout Standard This set of subroutines enables the models to interact, complete or query the XML tree data base. New elements or group of elements can be added as child in the tree, attributes of the elements can be set or query. The type of elements currently available are: context, axis, domain, grid, field, variable and file. An element can be identified by a string or by an handle associated to the type of the element. Root element (ex: \begin_inset Quotes eld \end_inset axis_definition \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset field_definition \begin_inset Quotes erd \end_inset ,....) are considered like a group of element and are identified by a specific string \begin_inset Quotes eld \end_inset element_definition \begin_inset Quotes erd \end_inset where element can be any one of the existing elements. \end_layout \begin_layout Subsection* Fortran type of the handles element \end_layout \begin_layout Quotation TYPE(xios_element) \end_layout \begin_layout Standard where \begin_inset Quotes eld \end_inset element \begin_inset Quotes erd \end_inset can be any one among \begin_inset Quotes eld \end_inset context \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset axis \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset domain \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset grid \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset field \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset variable \begin_inset Quotes erd \end_inset or \begin_inset Quotes eld \end_inset file \begin_inset Quotes erd \end_inset , or the associated group (excepted for context): \begin_inset Quotes eld \end_inset axis_group \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset domain_group \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset grid_group \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset field_group \begin_inset Quotes erd \end_inset , \begin_inset Quotes eld \end_inset variable_group \begin_inset Quotes erd \end_inset or \begin_inset Quotes eld \end_inset file_group \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Subsection* Getting handles \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_element_handle(id,handle) \end_layout \begin_layout LyX-Code CHARACTER(len = *) , INTENT(IN) :: id \end_layout \begin_layout LyX-Code TYPE(xios_element), INTENT(OUT):: handle \end_layout \begin_layout Standard where element is one of the existing elements or group of elements. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout id \end_layout \end_inset : string identifier. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout handle \end_layout \end_inset : element handle \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine returns the handle of the specified element identified by its string. The element must be existing otherwise an error is raised. \end_layout \begin_layout Subsection* Query for a valid element \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code LOGICAL FUNCTION xios_is_valid_element(id) \end_layout \begin_layout LyX-Code CHARACTER(len = *) , INTENT(IN) :: id \end_layout \begin_layout Standard where element is one of the existing elements or group of elements. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout id \end_layout \end_inset : string identifier. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns .TRUE. if the element defined by the string identifier \begin_inset Quotes eld \end_inset id \begin_inset Quotes erd \end_inset exists in the data base, otherwise it returns .FALSE. . \end_layout \begin_layout Subsection* Adding child \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_add_element(parent_handle, child_handle, child_id) \end_layout \begin_layout LyX-Code TYPE(xios_element) , INTENT(IN) :: parent_handle \end_layout \begin_layout LyX-Code TYPE(xios_element) , INTENT(OUT):: child_handle \end_layout \begin_layout LyX-Code CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id \end_layout \begin_layout Standard where element is one of the existing elements or element groups. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout parent_handle \end_layout \end_inset : handle of the parent element. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout child_handle \end_layout \end_inset : handle of the child element. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout child_id \end_layout \end_inset : string identifier of the child. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine adds a child to an existing parent element. The identifier of the child, if existing, can be specified optionally. All group elements can contain child of the same type, provided generic inheritance. Some elements can contain children of another type for a specific behavior. File element may contain field_group, field, variable and variable_group child elements. Field elements may contain variable_group of variable child element. \end_layout \begin_layout Subsection* Query if the value of an element attribute is defined (by handle) \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_is_defined_attr(handle, attr_1=attribute_1, attr_2=attribute_2, ...) \end_layout \begin_layout LyX-Code TYPE(xios_element) , INTENT(IN) :: handle \end_layout \begin_layout LyX-Code LOGICAL, OPTIONAL , INTENT(OUT) :: attr_1 \end_layout \begin_layout LyX-Code LOGICAL, OPTIONAL , INTENT(OUT) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. attribute_x is describing in the chapter dedicated to the attribute description. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout handle \end_layout \end_inset : element handle. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : return true if the attribute as a defined value. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to query if one or more attributes of an element have a defined value. The list of attributes and their type are described in a specific chapter of the documentation. \end_layout \begin_layout Subsection* Query if a value of an element attributes is defined (by identifier) \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_is_defined_element_attr(id, attr_1=attribute_1, attr_2=attribute _2, ...) \end_layout \begin_layout LyX-Code CHARACTER(len = *) , INTENT(IN) :: id \end_layout \begin_layout LyX-Code LOGICAL, OPTIONAL , INTENT(OUT) :: attr_1 \end_layout \begin_layout LyX-Code LOGICAL, OPTIONAL , INTENT(OUT) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. attribute_x is describing in the chapter dedicated to the attribute description. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout id \end_layout \end_inset : element identifier. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : return true if the attribute as a defined value. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to query if one or more attributes of an element have a defined value. The list of available attributes and their type are described in a specific chapter of the documentation. \end_layout \begin_layout Subsection* Setting element attributes value by handle \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_attr(handle, attr_1=attribute_1, attr_2=attribute_2, ...) \end_layout \begin_layout LyX-Code TYPE(xios_element) , INTENT(IN) :: handle \end_layout \begin_layout LyX-Code attribute_type_1, OPTIONAL , INTENT(IN) :: attr_1 \end_layout \begin_layout LyX-Code attribute_type_2, OPTIONAL , INTENT(IN) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. attribute_x and attribute_type_x are describing in the chapter dedicated to the attribute description. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout handle \end_layout \end_inset : element handle. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : value of the attribute to be set. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to set one or more attributes of an element defined by its handle. The list of available attributes and their types are described in corresponding chapters of the documentation. \end_layout \begin_layout Subsection* Setting element attributes value by id \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_element_attr(id, attr_1=attribute_1, attr_2=attribute_2, ...) \end_layout \begin_layout LyX-Code CHARACTER(len = *), INTENT(IN) :: id \end_layout \begin_layout LyX-Code attribute_type_1, OPTIONAL , INTENT(IN) :: attr_1 \end_layout \begin_layout LyX-Code attribute_type_2, OPTIONAL , INTENT(IN) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. The attributes attribute_x and attribute_type_x are described in corresponding chapters. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout id \end_layout \end_inset : string identifier. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : value of the attribute to be set. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to set one or more attributes of an element defined by its string id. The list of available attributes and their type are described in corresponding chapters of the documentation. \end_layout \begin_layout Subsection* Getting element attributes value (by handle) \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_attr(handle, attr_1=attribute_1, attr_2=attribute_2, ...) \end_layout \begin_layout LyX-Code TYPE(xios_element) , INTENT(IN) :: handle \end_layout \begin_layout LyX-Code attribute_type_1, OPTIONAL , INTENT(OUT) :: attr_1 \end_layout \begin_layout LyX-Code attribute_type_2, OPTIONAL , INTENT(OUT) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. attribute_x and attribute_type_x are describing in the chapter dedicated to the attribute description. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout handle \end_layout \end_inset : element handle. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : value of the attribute to be get. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to get one or more attribute value of an element defined by its handle. All attributes in the arguments list must be defined. The list of available attributes and their type are described in a specific chapter of the documentation. \end_layout \begin_layout Subsection* Getting element attributes value (by identifier) \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_element_attr(id, attr_1=attribute_1, attr_2=attribute_2, ...) \end_layout \begin_layout LyX-Code CHARACTER(len = *), INTENT(IN) :: id \end_layout \begin_layout LyX-Code attribute_type_1, OPTIONAL , INTENT(OUT) :: attr_1 \end_layout \begin_layout LyX-Code attribute_type_2, OPTIONAL , INTENT(OUT) :: attr_2 \end_layout \begin_layout LyX-Code .... \end_layout \begin_layout Standard where element is one of the existing elements or element groups. attribute_x is describing in the chapter dedicated to the attribute description. \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout id \end_layout \end_inset : element string identifier. \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout attr_x \end_layout \end_inset : value of the attribute to be get. \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine can be used to get one or more attribute value of an element defined by its handle. All attributes in the arguments list must have a defined value. The list of available attributes and their type are described in a specific chapter of the documentation. \end_layout \begin_layout Section* Context management interface \end_layout \begin_layout Subsection* XIOS context initialization \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_context_initialize(context_id, context_comm) \end_layout \begin_layout LyX-Code CHARACTER(LEN=*),INTENT(IN) :: context_id \end_layout \begin_layout LyX-Code INTEGER,INTENT(IN) :: context_comm \end_layout \begin_layout Subsubsection* Argument: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout context_id \end_layout \end_inset : context identifier \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout context_comm \end_layout \end_inset : MPI communicator of the context \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine initializes a context identified by \begin_inset Flex Code status collapsed \begin_layout Plain Layout context_id \end_layout \end_inset string and must be called before any call related to this context. A context must be associated to a communicator, which can be the returned communicator of the \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_initialize \end_layout \end_inset subroutine or a sub-communicator of this. The context initialization is dynamic and can be done at any time before the \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_finalize \end_layout \end_inset call. \end_layout \begin_layout Subsection* XIOS context finalization \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_context_finalize() \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Standard None \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine must be called to close a context before the \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_finalize \end_layout \end_inset call. It waits until that all pending requests sent to the servers will be processed and all opened files will be closed. \end_layout \begin_layout Subsection* Setting current active context \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_current_context(context_handle) \end_layout \begin_layout LyX-Code TYPE(xios_context),INTENT(IN) :: context_handle \end_layout \begin_layout Standard or \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_current_context(context_id) \end_layout \begin_layout LyX-Code CHARACTER(LEN=*),INTENT(IN) :: context_id \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout context_handle \end_layout \end_inset : handle of the context \end_layout \begin_layout Standard or \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout context_id \end_layout \end_inset : string context identifier \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard These subroutines set the current active context. All following XIOS calls will refer to this active context. If only one context is defined, it will be set automatically as the active context. \end_layout \begin_layout Subsection* Closing definition \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_close_context_definition() \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Standard None \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine must be called when all definitions of a context are finished at the end of the initialization and before entering to the time loop. A lot of operations are performed internally (inheritance, grid definition, contacting servers,...) so this call is mandatory. Any call related to the tree management definition done after will have an undefined effect. \end_layout \begin_layout Section* Calendar management interface \end_layout \begin_layout Subsection* Creating the calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, & \begin_inset Newline newline \end_inset day_length, month_lengths, year_length, & \begin_inset Newline newline \end_inset leap_year_month, leap_year_drift, & \begin_inset Newline newline \end_inset leap_year_drift_offset) \begin_inset Newline newline \end_inset CHARACTER(len = *), INTENT(IN) :: type \begin_inset Newline newline \end_inset TYPE(xios_duration), OPTIONAL, INTENT(IN) :: timestep \begin_inset Newline newline \end_inset TYPE(xios_date), OPTIONAL, INTENT(IN) :: start_date \begin_inset Newline newline \end_inset TYPE(xios_date), OPTIONAL, INTENT(IN) :: time_origin \begin_inset Newline newline \end_inset INTEGER, OPTIONAL, INTENT(IN) :: day_length \begin_inset Newline newline \end_inset INTEGER, OPTIONAL, INTENT(IN) :: month_lengths(:) \begin_inset Newline newline \end_inset INTEGER, OPTIONAL, INTENT(IN) :: year_length \begin_inset Newline newline \end_inset DOUBLE PRECISION, OPTIONAL, INTENT(IN) :: leap_year_drift \begin_inset Newline newline \end_inset DOUBLE PRECISION, OPTIONAL, INTENT(IN) :: leap_year_drift_offset \begin_inset Newline newline \end_inset INTEGER, OPTIONAL, INTENT(IN) :: leap_year_month \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout type \end_layout \end_inset : the calendar type, one of \begin_inset Flex Code status collapsed \begin_layout Plain Layout "Gregorian" \end_layout \end_inset , \begin_inset Flex Code status collapsed \begin_layout Plain Layout "Julian" \end_layout \end_inset , \begin_inset Flex Code status collapsed \begin_layout Plain Layout "D360" \end_layout \end_inset , \begin_inset Flex Code status collapsed \begin_layout Plain Layout "AllLeap" \end_layout \end_inset , \begin_inset Flex Code status collapsed \begin_layout Plain Layout "NoLeap" \end_layout \end_inset , \begin_inset Flex Code status collapsed \begin_layout Plain Layout "user_defined" \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout timestep \end_layout \end_inset : the time step of the simulation (optional, can be set later) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout start_date \end_layout \end_inset : the start date of the simulation (optional, \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_date(0000, 01, 01, 00, 00, 00) \end_layout \end_inset is used by default) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout time_origin \end_layout \end_inset : the origin of the time axis (optional, \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_date(0000, 01, 01, 00, 00, 00) \end_layout \end_inset is used by default) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout day_length \end_layout \end_inset : the length of a day in seconds (mandatory when creating an user defined calendar, must not be set otherwise) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout month_lengths \end_layout \end_inset : the length of each month of the year in days (either \begin_inset Flex Code status collapsed \begin_layout Plain Layout month_lengths \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout year_length \end_layout \end_inset must be set when creating an user defined calendar, must not be set otherwise) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout year_length \end_layout \end_inset : the length of a year in seconds (either \begin_inset Flex Code status collapsed \begin_layout Plain Layout month_lengths \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout year_length \end_layout \end_inset must be set when creating an user defined calendar, must not be set otherwise) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift \end_layout \end_inset : the yearly drift between the user defined calendar and the astronomical calendar, expressed as a fraction of day (can optionally be set when creating an user defined calendar in which case \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_month \end_layout \end_inset must be set too) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift_offset \end_layout \end_inset : the initial drift between the user defined calendar and the astronomical calendar at the time origin, expressed as a fraction of day (can optionally be set if \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift \end_layout \end_inset and \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_month \end_layout \end_inset are set) \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_month \end_layout \end_inset : the month to which an extra day must be added in case of leap year (can optionally be set when creating an user defined calendar in which case \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift \end_layout \end_inset must be set too) \end_layout \begin_layout Standard For a more detailed description of those arguments, see the description of the corresponding attributes in section 1.2 \begin_inset Quotes eld \end_inset Calendar attribute reference \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine creates the calendar for the current context. Note that the calendar is created once and for all, either from the XML configuration file or the Fortran interface. If it was not created from the configuration file, then this subroutine must be called once and only once before the context definition is closed. The calendar features can be used immediately after the calendar was created. \begin_inset Newline newline \end_inset \begin_inset Newline newline \end_inset If an user defined calendar is created, the following arguments must also be provided: \begin_inset Flex Code status collapsed \begin_layout Plain Layout day_length \end_layout \end_inset and either \begin_inset Flex Code status collapsed \begin_layout Plain Layout month_lengths \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout year_length \end_layout \end_inset . Optionally it is possible to configure the user defined calendar to have leap years. In this case, \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift \end_layout \end_inset and \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_month \end_layout \end_inset must also be provided and \begin_inset Flex Code status collapsed \begin_layout Plain Layout leap_year_drift_offset \end_layout \end_inset might be used. \end_layout \begin_layout Subsection* Accessing the calendar type of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_calendar_type(calendar_type) \begin_inset Newline newline \end_inset CHARACTER(len=*), INTENT(OUT) :: calendar_type \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout calendar_type \end_layout \end_inset : on output, the type of the calendar attached to the current context \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine gets the calendar type associated to the current context. It will raise an error if used before the calendar was created. \end_layout \begin_layout Subsection* Accessing and defining the time step of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_timestep(timestep) \begin_inset Newline newline \end_inset TYPE(xios_duration), INTENT(OUT) :: timestep \end_layout \begin_layout Standard and \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_timestep(timestep) \begin_inset Newline newline \end_inset TYPE(xios_duration), INTENT(IN) :: timestep \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout timestep \end_layout \end_inset : a duration corresponding to the time step of the simulation \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard Those subroutines respectively gets and sets the time step associated to the calendar of the current context. Note that the time step must always be set before the context definition is closed and that an error will be raised if the getter subroutine is used before the time step is defined. \end_layout \begin_layout Subsection* Accessing and defining the start date of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_start_date(start_date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(OUT) :: start_date \end_layout \begin_layout Standard and \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_start_date(start_date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: start_date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout start_date \end_layout \end_inset : a date corresponding to the beginning of the simulation \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard Those subroutines respectively gets and sets the start date associated to the calendar of the current context. They must not be used before the calendar was created. \end_layout \begin_layout Subsection* Accessing and defining the time origin of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_time_origin(time_origin) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(OUT) :: time_origin \end_layout \begin_layout Standard and \end_layout \begin_layout LyX-Code SUBROUTINE xios_set_time_date(time_origin) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: time_origin \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout start_date \end_layout \end_inset : a date corresponding to the origin of the time axis \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard Those subroutines respectively gets and sets the origin of time associated to the calendar of the current context. They must not be used before the calendar was created. \end_layout \begin_layout Subsection* Updating the current date of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_update_calendar(step) \begin_inset Newline newline \end_inset INTEGER, INTENT(IN) :: step \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout step \end_layout \end_inset : the current iteration number \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine sets the current date associated to the calendar of the current context based on the current iteration number: \begin_inset Formula $current\_date=start\_date+step\times timestep$ \end_inset . It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Accessing the current date of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code SUBROUTINE xios_get_current_date(current_date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(OUT) :: current_date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout current_date \end_layout \end_inset : on output, the current date \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This subroutine gets the current date associated to the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Accessing the year length of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code INTEGER FUNCTION xios_get_year_length_in_seconds(year) \begin_inset Newline newline \end_inset INTEGER, INTENT(IN) :: year \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout year \end_layout \end_inset : the year whose length is requested \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the duration in seconds of the specified year, taking leap years into account based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Accessing the day length of the current calendar \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code INTEGER FUNCTION xios_get_day_length_in_seconds() \end_layout \begin_layout Subsubsection* Arguments: None \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the duration in seconds of a day, based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Section* Duration handling interface \end_layout \begin_layout Subsection* Duration constants \end_layout \begin_layout Standard Some duration constants are available to ease duration handling: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_year \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_month \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_day \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_hour \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_minute \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_second \end_layout \end_inset \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_timestep \end_layout \end_inset \end_layout \begin_layout Subsection* Arithmetic operations on durations \end_layout \begin_layout Standard The following arithmetic operations on durations are available: \end_layout \begin_layout Itemize Addition: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = xios_duration + xios_duration \end_layout \end_inset \end_layout \begin_layout Itemize Subtraction: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = xios_duration - xios_duration \end_layout \end_inset \end_layout \begin_layout Itemize Multiplication by a scalar value: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = scalar * xios_duration \end_layout \end_inset or \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = xios_duration * scalar \end_layout \end_inset \end_layout \begin_layout Itemize Negation: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = -xios_duration \end_layout \end_inset \end_layout \begin_layout Subsection* Comparison operations on durations \end_layout \begin_layout Standard The following comparison operations on durations are available: \end_layout \begin_layout Itemize Equality: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_duration == xios_duration \end_layout \end_inset \end_layout \begin_layout Itemize Inequality: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_duration /= xios_duration \end_layout \end_inset \end_layout \begin_layout Section* Interface relative to date handling \end_layout \begin_layout Subsection* Arithmetic operations on dates \end_layout \begin_layout Standard The following arithmetic operations on dates are available: \end_layout \begin_layout Itemize Addition of a duration: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_date = xios_date + xios_duration \end_layout \end_inset \end_layout \begin_layout Itemize Subtraction of a duration: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_date = xios_date - xios_duration \end_layout \end_inset \end_layout \begin_layout Itemize Subtraction of two dates: \begin_inset Flex Code status collapsed \begin_layout Plain Layout xios_duration = xios_date - xios_date \end_layout \end_inset \end_layout \begin_layout Subsection* Comparison operations on dates \end_layout \begin_layout Standard The following comparison operations on dates are available: \end_layout \begin_layout Itemize Equality: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date == xios_date \end_layout \end_inset \end_layout \begin_layout Itemize Inequality: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date /= xios_date \end_layout \end_inset \end_layout \begin_layout Itemize Less than: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date < xios_date \end_layout \end_inset \end_layout \begin_layout Itemize Less or equal: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date <= xios_date \end_layout \end_inset \end_layout \begin_layout Itemize Greater than: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date > xios_date \end_layout \end_inset \end_layout \begin_layout Itemize Greater or equal: \begin_inset Flex Code status collapsed \begin_layout Plain Layout LOGICAL = xios_date >= xios_date \end_layout \end_inset \end_layout \begin_layout Subsection* Converting a date to a number of seconds since the time origin \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION INTEGER(kind = 8) xios_date_convert_to_seconds(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the number of seconds since the time origin for the specified date, based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Converting a date to a number of seconds since the beginning of the year \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION INTEGER xios(date_get_second_of_year)(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the number of seconds since the beginning of the year for the specified date, based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Converting a date to a number of days since the beginning of the year \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION DOUBLE_PRECISION xios_date_get_day_of_year(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the number of days since the beginning of the year for the specified date, based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Converting a date to a fraction of the current year \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_year(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the fraction of year corresponding to the specified date, based on the calendar of the current context. It must not be used before the calendar was created. \end_layout \begin_layout Subsection* Converting a date to a number of seconds since the beginning of the day \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION INTEGER xios(date_get_second_of_day)(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the number of seconds since the beginning of the day for the specified date, based on the calendar of the current context. It should not be used before the calendar was created. \end_layout \begin_layout Subsection* Converting a date to a fraction of the current day \end_layout \begin_layout Subsubsection* Synopsis: \end_layout \begin_layout LyX-Code FUNCTION DOUBLE_PRECISION xios_date_get_fraction_of_day(date) \begin_inset Newline newline \end_inset TYPE(xios_date), INTENT(IN) :: date \end_layout \begin_layout Subsubsection* Arguments: \end_layout \begin_layout Itemize \begin_inset Flex Code status collapsed \begin_layout Plain Layout date \end_layout \end_inset : the date to convert \end_layout \begin_layout Subsubsection* Description: \end_layout \begin_layout Standard This function returns the fraction of day corresponding to the specified date based on the calendar of the current context. It should not be used before the calendar was created. \end_layout \end_body \end_document