diff --git a/.gitignore b/.gitignore index 1bc6c456d979eefa6d0ccbf4b292791fd9f81953..57358ab183ddec722de0a8f50d83570fef92f367 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ xios_2311_src/xios_impi xios_2311_src/xios_ompi +nemo5_src/GLO-*/ \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index 39e594d64d66b6c0db0d0163878cadf57dcd4eab..0000000000000000000000000000000000000000 --- a/readme.md +++ /dev/null @@ -1,40 +0,0 @@ - -# NEMO 5 playground - -Contains a plyground to run NEMO5 (ver. ) with XIOS TRUNK (ver. 2311). - -## Structure - -* **nemo5_src** and **xios_2311_src** contain the sources for build the applications. -* The **inputs** are `reference rundirs` with the required namelists and all required files for each resolution. -* **scripts** contains utils to compile and execute, expected to be used as boilerplates. - -## Usage - -1. Compile XIOS -````bash -# At xios_3211_src dir: -./make_xios --arch mn5_gpp_intel --job 10 --build_dir xios_impi -./make_xios --arch mn5_gpp_intel_openmpi --job 10 --build_dir xios_ompi -```` -> If you need to recompile XIOS, use `--full`. - -2. Compile NEMO5: - - 2.1. Change the ARCH file with the XIOS build dir (nemo5_src/arch/arch-mn5_gpp_intel*) - ````bash - %XIOS_INC -I/your/path/to/xios_2311_src/inc - %XIOS_LIB -L/your/path/to/xios_2311_src/lib -lxios -lstdc++ - ```` - 2.2. Submit the compilations, several options available - ````bash - # At nemo5_src dir: - - ```` -3. Execute the model: - - 3.1. Untar inputs - - 3.2. Check the boilerplate to execute the model. - - diff --git a/xios_2311_src/.void_file b/xios_2311_src/.void_file deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/xios_2311_src/.void_file +++ /dev/null @@ -1 +0,0 @@ - diff --git a/xios_2311_src/Doxyfile b/xios_2311_src/Doxyfile deleted file mode 100644 index dca7b3804930d5b672599ee6339c08b664a760a1..0000000000000000000000000000000000000000 --- a/xios_2311_src/Doxyfile +++ /dev/null @@ -1,1725 +0,0 @@ -# Doxyfile 1.7.4 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = XIOS - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 1.0 - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "Xml I/O Server" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = ./doc - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = French - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = YES - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = YES - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). - -INLINE_GROUPED_CLASSES = NO - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = src - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = *.cpp \ - *.hpp \ - *.conf - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is adviced to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# If the HTML_TIMESTAMP tag is set to YES then the generated HTML -# documentation will contain the timesstamp. - -HTML_TIMESTAMP = YES - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the stylesheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 224 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 63 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 152 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = YES - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. - -GENERATE_TREEVIEW = YES - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = YES - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the -# mathjax.org site, so you can quickly see the result without installing -# MathJax, but it is strongly recommended to install a local copy of MathJax -# before deployment. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = YES - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! - -LATEX_FOOTER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = YES - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = YES - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will write a font called Helvetica to the output -# directory and reference it in all dot files that doxygen generates. -# When you want a differently looking font you can specify the font name -# using DOT_FONTNAME. You need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = YES - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = YES - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = YES - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/xios_2311_src/Licence.txt b/xios_2311_src/Licence.txt deleted file mode 100644 index 36b9a110bad136a99c5642da37d7fddf18136bb8..0000000000000000000000000000000000000000 --- a/xios_2311_src/Licence.txt +++ /dev/null @@ -1,1428 +0,0 @@ - - - ------------------ XIOS Licence --------------- - - - -XIOS is under CeCILL_V2 licence. See "Licence_CeCILL_V2-en.txt" file for an english -version of the licence and "Licence_CeCILL_V2-fr.txt" for a french version. - -All files in the src directory are submitted to the Cecill Licence. - - - -XIOS use internally some other packages that are submitted to other free licence : - - -- boost C++ library : http://www.boost.org - ---> Boost software licence : http://www.boost.org/users/license.html - - -- blitz++ : http://blitz.sourceforge.net/ - ---> GNU LESSER GENERAL PUBLIC LICENSE V3 : https://www.gnu.org/licenses/lgpl.html - - -- RapidXML : http://rapidxml.sourceforge.net/ - ---> Boost software licence : http://www.boost.org/users/license.html - - - - FCM : http://www.metoffice.gov.uk/research/collaboration/fcm - ---> GNU GENERAL PUBLIC LICENSE V3 : https://www.gnu.org/licenses/lgpl.html - - - ---------------------------------------------------------------------------- - - Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - - ----------------------------------------------------------------------------- - - - - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. - - - - - ------------------------------------------------------------------------- - - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - - ------------------------------------------------------------------------------ - - - - -CeCILL FREE SOFTWARE LICENSE AGREEMENT - - - Notice - -This Agreement is a Free Software license agreement that is the result -of discussions between its authors in order to ensure compliance with -the two main principles guiding its drafting: - - * firstly, compliance with the principles governing the distribution - of Free Software: access to source code, broad rights granted to - users, - * secondly, the election of a governing law, French law, with which - it is conformant, both as regards the law of torts and - intellectual property law, and the protection that it offers to - both authors and holders of the economic rights over software. - -The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) -license are: - -Commissariat à l'Energie Atomique - CEA, a public scientific, technical -and industrial research establishment, having its principal place of -business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. - -Centre National de la Recherche Scientifique - CNRS, a public scientific -and technological establishment, having its principal place of business -at 3 rue Michel-Ange, 75794 Paris cedex 16, France. - -Institut National de Recherche en Informatique et en Automatique - -INRIA, a public scientific and technological establishment, having its -principal place of business at Domaine de Voluceau, Rocquencourt, BP -105, 78153 Le Chesnay cedex, France. - - - Preamble - -The purpose of this Free Software license agreement is to grant users -the right to modify and redistribute the software governed by this -license within the framework of an open source distribution model. - -The exercising of these rights is conditional upon certain obligations -for users so as to preserve this status for all subsequent redistributions. - -In consideration of access to the source code and the rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors only have limited liability. - -In this respect, the risks associated with loading, using, modifying -and/or developing or reproducing the software by the user are brought to -the user's attention, given its Free Software status, which may make it -complicated to use, with the result that its use is reserved for -developers and experienced professionals having in-depth computer -knowledge. Users are therefore encouraged to load and test the -suitability of the software as regards their requirements in conditions -enabling the security of their systems and/or data to be ensured and, -more generally, to use and operate it in the same conditions of -security. This Agreement may be freely reproduced and published, -provided it is not altered, and that no provisions are either added or -removed herefrom. - -This Agreement may apply to any or all software for which the holder of -the economic rights decides to submit the use thereof to its provisions. - - - Article 1 - DEFINITIONS - -For the purpose of this Agreement, when the following expressions -commence with a capital letter, they shall have the following meaning: - -Agreement: means this license agreement, and its possible subsequent -versions and annexes. - -Software: means the software in its Object Code and/or Source Code form -and, where applicable, its documentation, "as is" when the Licensee -accepts the Agreement. - -Initial Software: means the Software in its Source Code and possibly its -Object Code form and, where applicable, its documentation, "as is" when -it is first distributed under the terms and conditions of the Agreement. - -Modified Software: means the Software modified by at least one -Contribution. - -Source Code: means all the Software's instructions and program lines to -which access is required so as to modify the Software. - -Object Code: means the binary files originating from the compilation of -the Source Code. - -Holder: means the holder(s) of the economic rights over the Initial -Software. - -Licensee: means the Software user(s) having accepted the Agreement. - -Contributor: means a Licensee having made at least one Contribution. - -Licensor: means the Holder, or any other individual or legal entity, who -distributes the Software under the Agreement. - -Contribution: means any or all modifications, corrections, translations, -adaptations and/or new functions integrated into the Software by any or -all Contributors, as well as any or all Internal Modules. - -Module: means a set of sources files including their documentation that -enables supplementary functions or services in addition to those offered -by the Software. - -External Module: means any or all Modules, not derived from the -Software, so that this Module and the Software run in separate address -spaces, with one calling the other when they are run. - -Internal Module: means any or all Module, connected to the Software so -that they both execute in the same address space. - -GNU GPL: means the GNU General Public License version 2 or any -subsequent version, as published by the Free Software Foundation Inc. - -Parties: mean both the Licensee and the Licensor. - -These expressions may be used both in singular and plural form. - - - Article 2 - PURPOSE - -The purpose of the Agreement is the grant by the Licensor to the -Licensee of a non-exclusive, transferable and worldwide license for the -Software as set forth in Article 5 hereinafter for the whole term of the -protection granted by the rights over said Software. - - - Article 3 - ACCEPTANCE - -3.1 The Licensee shall be deemed as having accepted the terms and -conditions of this Agreement upon the occurrence of the first of the -following events: - - * (i) loading the Software by any or all means, notably, by - downloading from a remote server, or by loading from a physical - medium; - * (ii) the first time the Licensee exercises any of the rights - granted hereunder. - -3.2 One copy of the Agreement, containing a notice relating to the -characteristics of the Software, to the limited warranty, and to the -fact that its use is restricted to experienced users has been provided -to the Licensee prior to its acceptance as set forth in Article 3.1 -hereinabove, and the Licensee hereby acknowledges that it has read and -understood it. - - - Article 4 - EFFECTIVE DATE AND TERM - - - 4.1 EFFECTIVE DATE - -The Agreement shall become effective on the date when it is accepted by -the Licensee as set forth in Article 3.1. - - - 4.2 TERM - -The Agreement shall remain in force for the entire legal term of -protection of the economic rights over the Software. - - - Article 5 - SCOPE OF RIGHTS GRANTED - -The Licensor hereby grants to the Licensee, who accepts, the following -rights over the Software for any or all use, and for the term of the -Agreement, on the basis of the terms and conditions set forth hereinafter. - -Besides, if the Licensor owns or comes to own one or more patents -protecting all or part of the functions of the Software or of its -components, the Licensor undertakes not to enforce the rights granted by -these patents against successive Licensees using, exploiting or -modifying the Software. If these patents are transferred, the Licensor -undertakes to have the transferees subscribe to the obligations set -forth in this paragraph. - - - 5.1 RIGHT OF USE - -The Licensee is authorized to use the Software, without any limitation -as to its fields of application, with it being hereinafter specified -that this comprises: - - 1. permanent or temporary reproduction of all or part of the Software - by any or all means and in any or all form. - - 2. loading, displaying, running, or storing the Software on any or - all medium. - - 3. entitlement to observe, study or test its operation so as to - determine the ideas and principles behind any or all constituent - elements of said Software. This shall apply when the Licensee - carries out any or all loading, displaying, running, transmission - or storage operation as regards the Software, that it is entitled - to carry out hereunder. - - - 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS - -The right to make Contributions includes the right to translate, adapt, -arrange, or make any or all modifications to the Software, and the right -to reproduce the resulting software. - -The Licensee is authorized to make any or all Contributions to the -Software provided that it includes an explicit notice that it is the -author of said Contribution and indicates the date of the creation thereof. - - - 5.3 RIGHT OF DISTRIBUTION - -In particular, the right of distribution includes the right to publish, -transmit and communicate the Software to the general public on any or -all medium, and by any or all means, and the right to market, either in -consideration of a fee, or free of charge, one or more copies of the -Software by any means. - -The Licensee is further authorized to distribute copies of the modified -or unmodified Software to third parties according to the terms and -conditions set forth hereinafter. - - - 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION - -The Licensee is authorized to distribute true copies of the Software in -Source Code or Object Code form, provided that said distribution -complies with all the provisions of the Agreement and is accompanied by: - - 1. a copy of the Agreement, - - 2. a notice relating to the limitation of both the Licensor's - warranty and liability as set forth in Articles 8 and 9, - -and that, in the event that only the Object Code of the Software is -redistributed, the Licensee allows future Licensees unhindered access to -the full Source Code of the Software by indicating how to access it, it -being understood that the additional cost of acquiring the Source Code -shall not exceed the cost of transferring the data. - - - 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE - -When the Licensee makes a Contribution to the Software, the terms and -conditions for the distribution of the resulting Modified Software -become subject to all the provisions of this Agreement. - -The Licensee is authorized to distribute the Modified Software, in -source code or object code form, provided that said distribution -complies with all the provisions of the Agreement and is accompanied by: - - 1. a copy of the Agreement, - - 2. a notice relating to the limitation of both the Licensor's - warranty and liability as set forth in Articles 8 and 9, - -and that, in the event that only the object code of the Modified -Software is redistributed, the Licensee allows future Licensees -unhindered access to the full source code of the Modified Software by -indicating how to access it, it being understood that the additional -cost of acquiring the source code shall not exceed the cost of -transferring the data. - - - 5.3.3 DISTRIBUTION OF EXTERNAL MODULES - -When the Licensee has developed an External Module, the terms and -conditions of this Agreement do not apply to said External Module, that -may be distributed under a separate license agreement. - - - 5.3.4 COMPATIBILITY WITH THE GNU GPL - -The Licensee can include a code that is subject to the provisions of one -of the versions of the GNU GPL in the Modified or unmodified Software, -and distribute that entire code under the terms of the same version of -the GNU GPL. - -The Licensee can include the Modified or unmodified Software in a code -that is subject to the provisions of one of the versions of the GNU GPL, -and distribute that entire code under the terms of the same version of -the GNU GPL. - - - Article 6 - INTELLECTUAL PROPERTY - - - 6.1 OVER THE INITIAL SOFTWARE - -The Holder owns the economic rights over the Initial Software. Any or -all use of the Initial Software is subject to compliance with the terms -and conditions under which the Holder has elected to distribute its work -and no one shall be entitled to modify the terms and conditions for the -distribution of said Initial Software. - -The Holder undertakes that the Initial Software will remain ruled at -least by this Agreement, for the duration set forth in Article 4.2. - - - 6.2 OVER THE CONTRIBUTIONS - -The Licensee who develops a Contribution is the owner of the -intellectual property rights over this Contribution as defined by -applicable law. - - - 6.3 OVER THE EXTERNAL MODULES - -The Licensee who develops an External Module is the owner of the -intellectual property rights over this External Module as defined by -applicable law and is free to choose the type of agreement that shall -govern its distribution. - - - 6.4 JOINT PROVISIONS - -The Licensee expressly undertakes: - - 1. not to remove, or modify, in any manner, the intellectual property - notices attached to the Software; - - 2. to reproduce said notices, in an identical manner, in the copies - of the Software modified or not. - -The Licensee undertakes not to directly or indirectly infringe the -intellectual property rights of the Holder and/or Contributors on the -Software and to take, where applicable, vis-à-vis its staff, any and all -measures required to ensure respect of said intellectual property rights -of the Holder and/or Contributors. - - - Article 7 - RELATED SERVICES - -7.1 Under no circumstances shall the Agreement oblige the Licensor to -provide technical assistance or maintenance services for the Software. - -However, the Licensor is entitled to offer this type of services. The -terms and conditions of such technical assistance, and/or such -maintenance, shall be set forth in a separate instrument. Only the -Licensor offering said maintenance and/or technical assistance services -shall incur liability therefor. - -7.2 Similarly, any Licensor is entitled to offer to its licensees, under -its sole responsibility, a warranty, that shall only be binding upon -itself, for the redistribution of the Software and/or the Modified -Software, under terms and conditions that it is free to decide. Said -warranty, and the financial terms and conditions of its application, -shall be subject of a separate instrument executed between the Licensor -and the Licensee. - - - Article 8 - LIABILITY - -8.1 Subject to the provisions of Article 8.2, the Licensee shall be -entitled to claim compensation for any direct loss it may have suffered -from the Software as a result of a fault on the part of the relevant -Licensor, subject to providing evidence thereof. - -8.2 The Licensor's liability is limited to the commitments made under -this Agreement and shall not be incurred as a result of in particular: -(i) loss due the Licensee's total or partial failure to fulfill its -obligations, (ii) direct or consequential loss that is suffered by the -Licensee due to the use or performance of the Software, and (iii) more -generally, any consequential loss. In particular the Parties expressly -agree that any or all pecuniary or business loss (i.e. loss of data, -loss of profits, operating loss, loss of customers or orders, -opportunity cost, any disturbance to business activities) or any or all -legal proceedings instituted against the Licensee by a third party, -shall constitute consequential loss and shall not provide entitlement to -any or all compensation from the Licensor. - - - Article 9 - WARRANTY - -9.1 The Licensee acknowledges that the scientific and technical -state-of-the-art when the Software was distributed did not enable all -possible uses to be tested and verified, nor for the presence of -possible defects to be detected. In this respect, the Licensee's -attention has been drawn to the risks associated with loading, using, -modifying and/or developing and reproducing the Software which are -reserved for experienced users. - -The Licensee shall be responsible for verifying, by any or all means, -the suitability of the product for its requirements, its good working -order, and for ensuring that it shall not cause damage to either persons -or properties. - -9.2 The Licensor hereby represents, in good faith, that it is entitled -to grant all the rights over the Software (including in particular the -rights set forth in Article 5). - -9.3 The Licensee acknowledges that the Software is supplied "as is" by -the Licensor without any other express or tacit warranty, other than -that provided for in Article 9.2 and, in particular, without any warranty -as to its commercial value, its secured, safe, innovative or relevant -nature. - -Specifically, the Licensor does not warrant that the Software is free -from any error, that it will operate without interruption, that it will -be compatible with the Licensee's own equipment and software -configuration, nor that it will meet the Licensee's requirements. - -9.4 The Licensor does not either expressly or tacitly warrant that the -Software does not infringe any third party intellectual property right -relating to a patent, software or any other property right. Therefore, -the Licensor disclaims any and all liability towards the Licensee -arising out of any or all proceedings for infringement that may be -instituted in respect of the use, modification and redistribution of the -Software. Nevertheless, should such proceedings be instituted against -the Licensee, the Licensor shall provide it with technical and legal -assistance for its defense. Such technical and legal assistance shall be -decided on a case-by-case basis between the relevant Licensor and the -Licensee pursuant to a memorandum of understanding. The Licensor -disclaims any and all liability as regards the Licensee's use of the -name of the Software. No warranty is given as regards the existence of -prior rights over the name of the Software or as regards the existence -of a trademark. - - - Article 10 - TERMINATION - -10.1 In the event of a breach by the Licensee of its obligations -hereunder, the Licensor may automatically terminate this Agreement -thirty (30) days after notice has been sent to the Licensee and has -remained ineffective. - -10.2 A Licensee whose Agreement is terminated shall no longer be -authorized to use, modify or distribute the Software. However, any -licenses that it may have granted prior to termination of the Agreement -shall remain valid subject to their having been granted in compliance -with the terms and conditions hereof. - - - Article 11 - MISCELLANEOUS - - - 11.1 EXCUSABLE EVENTS - -Neither Party shall be liable for any or all delay, or failure to -perform the Agreement, that may be attributable to an event of force -majeure, an act of God or an outside cause, such as defective -functioning or interruptions of the electricity or telecommunications -networks, network paralysis following a virus attack, intervention by -government authorities, natural disasters, water damage, earthquakes, -fire, explosions, strikes and labor unrest, war, etc. - -11.2 Any failure by either Party, on one or more occasions, to invoke -one or more of the provisions hereof, shall under no circumstances be -interpreted as being a waiver by the interested Party of its right to -invoke said provision(s) subsequently. - -11.3 The Agreement cancels and replaces any or all previous agreements, -whether written or oral, between the Parties and having the same -purpose, and constitutes the entirety of the agreement between said -Parties concerning said purpose. No supplement or modification to the -terms and conditions hereof shall be effective as between the Parties -unless it is made in writing and signed by their duly authorized -representatives. - -11.4 In the event that one or more of the provisions hereof were to -conflict with a current or future applicable act or legislative text, -said act or legislative text shall prevail, and the Parties shall make -the necessary amendments so as to comply with said act or legislative -text. All other provisions shall remain effective. Similarly, invalidity -of a provision of the Agreement, for any reason whatsoever, shall not -cause the Agreement as a whole to be invalid. - - - 11.5 LANGUAGE - -The Agreement is drafted in both French and English and both versions -are deemed authentic. - - - Article 12 - NEW VERSIONS OF THE AGREEMENT - -12.1 Any person is authorized to duplicate and distribute copies of this -Agreement. - -12.2 So as to ensure coherence, the wording of this Agreement is -protected and may only be modified by the authors of the License, who -reserve the right to periodically publish updates or new versions of the -Agreement, each with a separate number. These subsequent versions may -address new issues encountered by Free Software. - -12.3 Any Software distributed under a given version of the Agreement may -only be subsequently distributed under the same version of the Agreement -or a subsequent version, subject to the provisions of Article 5.3.4. - - - Article 13 - GOVERNING LAW AND JURISDICTION - -13.1 The Agreement is governed by French law. The Parties agree to -endeavor to seek an amicable solution to any disagreements or disputes -that may arise during the performance of the Agreement. - -13.2 Failing an amicable solution within two (2) months as from their -occurrence, and unless emergency proceedings are necessary, the -disagreements or disputes shall be referred to the Paris Courts having -jurisdiction, by the more diligent Party. - - -Version 2.0 dated 2006-09-05. - - - - - diff --git a/xios_2311_src/Licence_CeCILL_V2-en.txt b/xios_2311_src/Licence_CeCILL_V2-en.txt deleted file mode 100644 index fcc8df26b07f09b1d12fc9c8e8b161423ae45bdf..0000000000000000000000000000000000000000 --- a/xios_2311_src/Licence_CeCILL_V2-en.txt +++ /dev/null @@ -1,506 +0,0 @@ - -CeCILL FREE SOFTWARE LICENSE AGREEMENT - - - Notice - -This Agreement is a Free Software license agreement that is the result -of discussions between its authors in order to ensure compliance with -the two main principles guiding its drafting: - - * firstly, compliance with the principles governing the distribution - of Free Software: access to source code, broad rights granted to - users, - * secondly, the election of a governing law, French law, with which - it is conformant, both as regards the law of torts and - intellectual property law, and the protection that it offers to - both authors and holders of the economic rights over software. - -The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) -license are: - -Commissariat à l'Energie Atomique - CEA, a public scientific, technical -and industrial research establishment, having its principal place of -business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. - -Centre National de la Recherche Scientifique - CNRS, a public scientific -and technological establishment, having its principal place of business -at 3 rue Michel-Ange, 75794 Paris cedex 16, France. - -Institut National de Recherche en Informatique et en Automatique - -INRIA, a public scientific and technological establishment, having its -principal place of business at Domaine de Voluceau, Rocquencourt, BP -105, 78153 Le Chesnay cedex, France. - - - Preamble - -The purpose of this Free Software license agreement is to grant users -the right to modify and redistribute the software governed by this -license within the framework of an open source distribution model. - -The exercising of these rights is conditional upon certain obligations -for users so as to preserve this status for all subsequent redistributions. - -In consideration of access to the source code and the rights to copy, -modify and redistribute granted by the license, users are provided only -with a limited warranty and the software's author, the holder of the -economic rights, and the successive licensors only have limited liability. - -In this respect, the risks associated with loading, using, modifying -and/or developing or reproducing the software by the user are brought to -the user's attention, given its Free Software status, which may make it -complicated to use, with the result that its use is reserved for -developers and experienced professionals having in-depth computer -knowledge. Users are therefore encouraged to load and test the -suitability of the software as regards their requirements in conditions -enabling the security of their systems and/or data to be ensured and, -more generally, to use and operate it in the same conditions of -security. This Agreement may be freely reproduced and published, -provided it is not altered, and that no provisions are either added or -removed herefrom. - -This Agreement may apply to any or all software for which the holder of -the economic rights decides to submit the use thereof to its provisions. - - - Article 1 - DEFINITIONS - -For the purpose of this Agreement, when the following expressions -commence with a capital letter, they shall have the following meaning: - -Agreement: means this license agreement, and its possible subsequent -versions and annexes. - -Software: means the software in its Object Code and/or Source Code form -and, where applicable, its documentation, "as is" when the Licensee -accepts the Agreement. - -Initial Software: means the Software in its Source Code and possibly its -Object Code form and, where applicable, its documentation, "as is" when -it is first distributed under the terms and conditions of the Agreement. - -Modified Software: means the Software modified by at least one -Contribution. - -Source Code: means all the Software's instructions and program lines to -which access is required so as to modify the Software. - -Object Code: means the binary files originating from the compilation of -the Source Code. - -Holder: means the holder(s) of the economic rights over the Initial -Software. - -Licensee: means the Software user(s) having accepted the Agreement. - -Contributor: means a Licensee having made at least one Contribution. - -Licensor: means the Holder, or any other individual or legal entity, who -distributes the Software under the Agreement. - -Contribution: means any or all modifications, corrections, translations, -adaptations and/or new functions integrated into the Software by any or -all Contributors, as well as any or all Internal Modules. - -Module: means a set of sources files including their documentation that -enables supplementary functions or services in addition to those offered -by the Software. - -External Module: means any or all Modules, not derived from the -Software, so that this Module and the Software run in separate address -spaces, with one calling the other when they are run. - -Internal Module: means any or all Module, connected to the Software so -that they both execute in the same address space. - -GNU GPL: means the GNU General Public License version 2 or any -subsequent version, as published by the Free Software Foundation Inc. - -Parties: mean both the Licensee and the Licensor. - -These expressions may be used both in singular and plural form. - - - Article 2 - PURPOSE - -The purpose of the Agreement is the grant by the Licensor to the -Licensee of a non-exclusive, transferable and worldwide license for the -Software as set forth in Article 5 hereinafter for the whole term of the -protection granted by the rights over said Software. - - - Article 3 - ACCEPTANCE - -3.1 The Licensee shall be deemed as having accepted the terms and -conditions of this Agreement upon the occurrence of the first of the -following events: - - * (i) loading the Software by any or all means, notably, by - downloading from a remote server, or by loading from a physical - medium; - * (ii) the first time the Licensee exercises any of the rights - granted hereunder. - -3.2 One copy of the Agreement, containing a notice relating to the -characteristics of the Software, to the limited warranty, and to the -fact that its use is restricted to experienced users has been provided -to the Licensee prior to its acceptance as set forth in Article 3.1 -hereinabove, and the Licensee hereby acknowledges that it has read and -understood it. - - - Article 4 - EFFECTIVE DATE AND TERM - - - 4.1 EFFECTIVE DATE - -The Agreement shall become effective on the date when it is accepted by -the Licensee as set forth in Article 3.1. - - - 4.2 TERM - -The Agreement shall remain in force for the entire legal term of -protection of the economic rights over the Software. - - - Article 5 - SCOPE OF RIGHTS GRANTED - -The Licensor hereby grants to the Licensee, who accepts, the following -rights over the Software for any or all use, and for the term of the -Agreement, on the basis of the terms and conditions set forth hereinafter. - -Besides, if the Licensor owns or comes to own one or more patents -protecting all or part of the functions of the Software or of its -components, the Licensor undertakes not to enforce the rights granted by -these patents against successive Licensees using, exploiting or -modifying the Software. If these patents are transferred, the Licensor -undertakes to have the transferees subscribe to the obligations set -forth in this paragraph. - - - 5.1 RIGHT OF USE - -The Licensee is authorized to use the Software, without any limitation -as to its fields of application, with it being hereinafter specified -that this comprises: - - 1. permanent or temporary reproduction of all or part of the Software - by any or all means and in any or all form. - - 2. loading, displaying, running, or storing the Software on any or - all medium. - - 3. entitlement to observe, study or test its operation so as to - determine the ideas and principles behind any or all constituent - elements of said Software. This shall apply when the Licensee - carries out any or all loading, displaying, running, transmission - or storage operation as regards the Software, that it is entitled - to carry out hereunder. - - - 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS - -The right to make Contributions includes the right to translate, adapt, -arrange, or make any or all modifications to the Software, and the right -to reproduce the resulting software. - -The Licensee is authorized to make any or all Contributions to the -Software provided that it includes an explicit notice that it is the -author of said Contribution and indicates the date of the creation thereof. - - - 5.3 RIGHT OF DISTRIBUTION - -In particular, the right of distribution includes the right to publish, -transmit and communicate the Software to the general public on any or -all medium, and by any or all means, and the right to market, either in -consideration of a fee, or free of charge, one or more copies of the -Software by any means. - -The Licensee is further authorized to distribute copies of the modified -or unmodified Software to third parties according to the terms and -conditions set forth hereinafter. - - - 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION - -The Licensee is authorized to distribute true copies of the Software in -Source Code or Object Code form, provided that said distribution -complies with all the provisions of the Agreement and is accompanied by: - - 1. a copy of the Agreement, - - 2. a notice relating to the limitation of both the Licensor's - warranty and liability as set forth in Articles 8 and 9, - -and that, in the event that only the Object Code of the Software is -redistributed, the Licensee allows future Licensees unhindered access to -the full Source Code of the Software by indicating how to access it, it -being understood that the additional cost of acquiring the Source Code -shall not exceed the cost of transferring the data. - - - 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE - -When the Licensee makes a Contribution to the Software, the terms and -conditions for the distribution of the resulting Modified Software -become subject to all the provisions of this Agreement. - -The Licensee is authorized to distribute the Modified Software, in -source code or object code form, provided that said distribution -complies with all the provisions of the Agreement and is accompanied by: - - 1. a copy of the Agreement, - - 2. a notice relating to the limitation of both the Licensor's - warranty and liability as set forth in Articles 8 and 9, - -and that, in the event that only the object code of the Modified -Software is redistributed, the Licensee allows future Licensees -unhindered access to the full source code of the Modified Software by -indicating how to access it, it being understood that the additional -cost of acquiring the source code shall not exceed the cost of -transferring the data. - - - 5.3.3 DISTRIBUTION OF EXTERNAL MODULES - -When the Licensee has developed an External Module, the terms and -conditions of this Agreement do not apply to said External Module, that -may be distributed under a separate license agreement. - - - 5.3.4 COMPATIBILITY WITH THE GNU GPL - -The Licensee can include a code that is subject to the provisions of one -of the versions of the GNU GPL in the Modified or unmodified Software, -and distribute that entire code under the terms of the same version of -the GNU GPL. - -The Licensee can include the Modified or unmodified Software in a code -that is subject to the provisions of one of the versions of the GNU GPL, -and distribute that entire code under the terms of the same version of -the GNU GPL. - - - Article 6 - INTELLECTUAL PROPERTY - - - 6.1 OVER THE INITIAL SOFTWARE - -The Holder owns the economic rights over the Initial Software. Any or -all use of the Initial Software is subject to compliance with the terms -and conditions under which the Holder has elected to distribute its work -and no one shall be entitled to modify the terms and conditions for the -distribution of said Initial Software. - -The Holder undertakes that the Initial Software will remain ruled at -least by this Agreement, for the duration set forth in Article 4.2. - - - 6.2 OVER THE CONTRIBUTIONS - -The Licensee who develops a Contribution is the owner of the -intellectual property rights over this Contribution as defined by -applicable law. - - - 6.3 OVER THE EXTERNAL MODULES - -The Licensee who develops an External Module is the owner of the -intellectual property rights over this External Module as defined by -applicable law and is free to choose the type of agreement that shall -govern its distribution. - - - 6.4 JOINT PROVISIONS - -The Licensee expressly undertakes: - - 1. not to remove, or modify, in any manner, the intellectual property - notices attached to the Software; - - 2. to reproduce said notices, in an identical manner, in the copies - of the Software modified or not. - -The Licensee undertakes not to directly or indirectly infringe the -intellectual property rights of the Holder and/or Contributors on the -Software and to take, where applicable, vis-à-vis its staff, any and all -measures required to ensure respect of said intellectual property rights -of the Holder and/or Contributors. - - - Article 7 - RELATED SERVICES - -7.1 Under no circumstances shall the Agreement oblige the Licensor to -provide technical assistance or maintenance services for the Software. - -However, the Licensor is entitled to offer this type of services. The -terms and conditions of such technical assistance, and/or such -maintenance, shall be set forth in a separate instrument. Only the -Licensor offering said maintenance and/or technical assistance services -shall incur liability therefor. - -7.2 Similarly, any Licensor is entitled to offer to its licensees, under -its sole responsibility, a warranty, that shall only be binding upon -itself, for the redistribution of the Software and/or the Modified -Software, under terms and conditions that it is free to decide. Said -warranty, and the financial terms and conditions of its application, -shall be subject of a separate instrument executed between the Licensor -and the Licensee. - - - Article 8 - LIABILITY - -8.1 Subject to the provisions of Article 8.2, the Licensee shall be -entitled to claim compensation for any direct loss it may have suffered -from the Software as a result of a fault on the part of the relevant -Licensor, subject to providing evidence thereof. - -8.2 The Licensor's liability is limited to the commitments made under -this Agreement and shall not be incurred as a result of in particular: -(i) loss due the Licensee's total or partial failure to fulfill its -obligations, (ii) direct or consequential loss that is suffered by the -Licensee due to the use or performance of the Software, and (iii) more -generally, any consequential loss. In particular the Parties expressly -agree that any or all pecuniary or business loss (i.e. loss of data, -loss of profits, operating loss, loss of customers or orders, -opportunity cost, any disturbance to business activities) or any or all -legal proceedings instituted against the Licensee by a third party, -shall constitute consequential loss and shall not provide entitlement to -any or all compensation from the Licensor. - - - Article 9 - WARRANTY - -9.1 The Licensee acknowledges that the scientific and technical -state-of-the-art when the Software was distributed did not enable all -possible uses to be tested and verified, nor for the presence of -possible defects to be detected. In this respect, the Licensee's -attention has been drawn to the risks associated with loading, using, -modifying and/or developing and reproducing the Software which are -reserved for experienced users. - -The Licensee shall be responsible for verifying, by any or all means, -the suitability of the product for its requirements, its good working -order, and for ensuring that it shall not cause damage to either persons -or properties. - -9.2 The Licensor hereby represents, in good faith, that it is entitled -to grant all the rights over the Software (including in particular the -rights set forth in Article 5). - -9.3 The Licensee acknowledges that the Software is supplied "as is" by -the Licensor without any other express or tacit warranty, other than -that provided for in Article 9.2 and, in particular, without any warranty -as to its commercial value, its secured, safe, innovative or relevant -nature. - -Specifically, the Licensor does not warrant that the Software is free -from any error, that it will operate without interruption, that it will -be compatible with the Licensee's own equipment and software -configuration, nor that it will meet the Licensee's requirements. - -9.4 The Licensor does not either expressly or tacitly warrant that the -Software does not infringe any third party intellectual property right -relating to a patent, software or any other property right. Therefore, -the Licensor disclaims any and all liability towards the Licensee -arising out of any or all proceedings for infringement that may be -instituted in respect of the use, modification and redistribution of the -Software. Nevertheless, should such proceedings be instituted against -the Licensee, the Licensor shall provide it with technical and legal -assistance for its defense. Such technical and legal assistance shall be -decided on a case-by-case basis between the relevant Licensor and the -Licensee pursuant to a memorandum of understanding. The Licensor -disclaims any and all liability as regards the Licensee's use of the -name of the Software. No warranty is given as regards the existence of -prior rights over the name of the Software or as regards the existence -of a trademark. - - - Article 10 - TERMINATION - -10.1 In the event of a breach by the Licensee of its obligations -hereunder, the Licensor may automatically terminate this Agreement -thirty (30) days after notice has been sent to the Licensee and has -remained ineffective. - -10.2 A Licensee whose Agreement is terminated shall no longer be -authorized to use, modify or distribute the Software. However, any -licenses that it may have granted prior to termination of the Agreement -shall remain valid subject to their having been granted in compliance -with the terms and conditions hereof. - - - Article 11 - MISCELLANEOUS - - - 11.1 EXCUSABLE EVENTS - -Neither Party shall be liable for any or all delay, or failure to -perform the Agreement, that may be attributable to an event of force -majeure, an act of God or an outside cause, such as defective -functioning or interruptions of the electricity or telecommunications -networks, network paralysis following a virus attack, intervention by -government authorities, natural disasters, water damage, earthquakes, -fire, explosions, strikes and labor unrest, war, etc. - -11.2 Any failure by either Party, on one or more occasions, to invoke -one or more of the provisions hereof, shall under no circumstances be -interpreted as being a waiver by the interested Party of its right to -invoke said provision(s) subsequently. - -11.3 The Agreement cancels and replaces any or all previous agreements, -whether written or oral, between the Parties and having the same -purpose, and constitutes the entirety of the agreement between said -Parties concerning said purpose. No supplement or modification to the -terms and conditions hereof shall be effective as between the Parties -unless it is made in writing and signed by their duly authorized -representatives. - -11.4 In the event that one or more of the provisions hereof were to -conflict with a current or future applicable act or legislative text, -said act or legislative text shall prevail, and the Parties shall make -the necessary amendments so as to comply with said act or legislative -text. All other provisions shall remain effective. Similarly, invalidity -of a provision of the Agreement, for any reason whatsoever, shall not -cause the Agreement as a whole to be invalid. - - - 11.5 LANGUAGE - -The Agreement is drafted in both French and English and both versions -are deemed authentic. - - - Article 12 - NEW VERSIONS OF THE AGREEMENT - -12.1 Any person is authorized to duplicate and distribute copies of this -Agreement. - -12.2 So as to ensure coherence, the wording of this Agreement is -protected and may only be modified by the authors of the License, who -reserve the right to periodically publish updates or new versions of the -Agreement, each with a separate number. These subsequent versions may -address new issues encountered by Free Software. - -12.3 Any Software distributed under a given version of the Agreement may -only be subsequently distributed under the same version of the Agreement -or a subsequent version, subject to the provisions of Article 5.3.4. - - - Article 13 - GOVERNING LAW AND JURISDICTION - -13.1 The Agreement is governed by French law. The Parties agree to -endeavor to seek an amicable solution to any disagreements or disputes -that may arise during the performance of the Agreement. - -13.2 Failing an amicable solution within two (2) months as from their -occurrence, and unless emergency proceedings are necessary, the -disagreements or disputes shall be referred to the Paris Courts having -jurisdiction, by the more diligent Party. - - -Version 2.0 dated 2006-09-05. diff --git a/xios_2311_src/Licence_CeCILL_V2-fr.txt b/xios_2311_src/Licence_CeCILL_V2-fr.txt deleted file mode 100644 index 1613fca5b606496691e6b5b6520afdf1772866de..0000000000000000000000000000000000000000 --- a/xios_2311_src/Licence_CeCILL_V2-fr.txt +++ /dev/null @@ -1,512 +0,0 @@ - -CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL - - - Avertissement - -Ce contrat est une licence de logiciel libre issue d'une concertation -entre ses auteurs afin que le respect de deux grands principes préside à -sa rédaction: - - * d'une part, le respect des principes de diffusion des logiciels - libres: accès au code source, droits étendus conférés aux - utilisateurs, - * d'autre part, la désignation d'un droit applicable, le droit - français, auquel elle est conforme, tant au regard du droit de la - responsabilité civile que du droit de la propriété intellectuelle - et de la protection qu'il offre aux auteurs et titulaires des - droits patrimoniaux sur un logiciel. - -Les auteurs de la licence CeCILL (pour Ce[a] C[nrs] I[nria] L[ogiciel] -L[ibre]) sont: - -Commissariat à l'Energie Atomique - CEA, établissement public de -recherche à caractère scientifique, technique et industriel, dont le -siège est situé 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris. - -Centre National de la Recherche Scientifique - CNRS, établissement -public à caractère scientifique et technologique, dont le siège est -situé 3 rue Michel-Ange, 75794 Paris cedex 16. - -Institut National de Recherche en Informatique et en Automatique - -INRIA, établissement public à caractère scientifique et technologique, -dont le siège est situé Domaine de Voluceau, Rocquencourt, BP 105, 78153 -Le Chesnay cedex. - - - Préambule - -Ce contrat est une licence de logiciel libre dont l'objectif est de -conférer aux utilisateurs la liberté de modification et de -redistribution du logiciel régi par cette licence dans le cadre d'un -modèle de diffusion en logiciel libre. - -L'exercice de ces libertés est assorti de certains devoirs à la charge -des utilisateurs afin de préserver ce statut au cours des -redistributions ultérieures. - -L'accessibilité au code source et les droits de copie, de modification -et de redistribution qui en découlent ont pour contrepartie de n'offrir -aux utilisateurs qu'une garantie limitée et de ne faire peser sur -l'auteur du logiciel, le titulaire des droits patrimoniaux et les -concédants successifs qu'une responsabilité restreinte. - -A cet égard l'attention de l'utilisateur est attirée sur les risques -associés au chargement, à l'utilisation, à la modification et/ou au -développement et à la reproduction du logiciel par l'utilisateur étant -donné sa spécificité de logiciel libre, qui peut le rendre complexe à -manipuler et qui le réserve donc à des développeurs ou des -professionnels avertis possédant des connaissances informatiques -approfondies. Les utilisateurs sont donc invités à charger et tester -l'adéquation du logiciel à leurs besoins dans des conditions permettant -d'assurer la sécurité de leurs systèmes et/ou de leurs données et, plus -généralement, à l'utiliser et l'exploiter dans les mêmes conditions de -sécurité. Ce contrat peut être reproduit et diffusé librement, sous -réserve de le conserver en l'état, sans ajout ni suppression de clauses. - -Ce contrat est susceptible de s'appliquer à tout logiciel dont le -titulaire des droits patrimoniaux décide de soumettre l'exploitation aux -dispositions qu'il contient. - - - Article 1 - DEFINITIONS - -Dans ce contrat, les termes suivants, lorsqu'ils seront écrits avec une -lettre capitale, auront la signification suivante: - -Contrat: désigne le présent contrat de licence, ses éventuelles versions -postérieures et annexes. - -Logiciel: désigne le logiciel sous sa forme de Code Objet et/ou de Code -Source et le cas échéant sa documentation, dans leur état au moment de -l'acceptation du Contrat par le Licencié. - -Logiciel Initial: désigne le Logiciel sous sa forme de Code Source et -éventuellement de Code Objet et le cas échéant sa documentation, dans -leur état au moment de leur première diffusion sous les termes du Contrat. - -Logiciel Modifié: désigne le Logiciel modifié par au moins une -Contribution. - -Code Source: désigne l'ensemble des instructions et des lignes de -programme du Logiciel et auquel l'accès est nécessaire en vue de -modifier le Logiciel. - -Code Objet: désigne les fichiers binaires issus de la compilation du -Code Source. - -Titulaire: désigne le ou les détenteurs des droits patrimoniaux d'auteur -sur le Logiciel Initial. - -Licencié: désigne le ou les utilisateurs du Logiciel ayant accepté le -Contrat. - -Contributeur: désigne le Licencié auteur d'au moins une Contribution. - -Concédant: désigne le Titulaire ou toute personne physique ou morale -distribuant le Logiciel sous le Contrat. - -Contribution: désigne l'ensemble des modifications, corrections, -traductions, adaptations et/ou nouvelles fonctionnalités intégrées dans -le Logiciel par tout Contributeur, ainsi que tout Module Interne. - -Module: désigne un ensemble de fichiers sources y compris leur -documentation qui permet de réaliser des fonctionnalités ou services -supplémentaires à ceux fournis par le Logiciel. - -Module Externe: désigne tout Module, non dérivé du Logiciel, tel que ce -Module et le Logiciel s'exécutent dans des espaces d'adressage -différents, l'un appelant l'autre au moment de leur exécution. - -Module Interne: désigne tout Module lié au Logiciel de telle sorte -qu'ils s'exécutent dans le même espace d'adressage. - -GNU GPL: désigne la GNU General Public License dans sa version 2 ou -toute version ultérieure, telle que publiée par Free Software Foundation -Inc. - -Parties: désigne collectivement le Licencié et le Concédant. - -Ces termes s'entendent au singulier comme au pluriel. - - - Article 2 - OBJET - -Le Contrat a pour objet la concession par le Concédant au Licencié d'une -licence non exclusive, cessible et mondiale du Logiciel telle que -définie ci-après à l'article 5 pour toute la durée de protection des droits -portant sur ce Logiciel. - - - Article 3 - ACCEPTATION - -3.1 L'acceptation par le Licencié des termes du Contrat est réputée -acquise du fait du premier des faits suivants: - - * (i) le chargement du Logiciel par tout moyen notamment par - téléchargement à partir d'un serveur distant ou par chargement à - partir d'un support physique; - * (ii) le premier exercice par le Licencié de l'un quelconque des - droits concédés par le Contrat. - -3.2 Un exemplaire du Contrat, contenant notamment un avertissement -relatif aux spécificités du Logiciel, à la restriction de garantie et à -la limitation à un usage par des utilisateurs expérimentés a été mis à -disposition du Licencié préalablement à son acceptation telle que -définie à l'article 3.1 ci dessus et le Licencié reconnaît en avoir pris -connaissance. - - - Article 4 - ENTREE EN VIGUEUR ET DUREE - - - 4.1 ENTREE EN VIGUEUR - -Le Contrat entre en vigueur à la date de son acceptation par le Licencié -telle que définie en 3.1. - - - 4.2 DUREE - -Le Contrat produira ses effets pendant toute la durée légale de -protection des droits patrimoniaux portant sur le Logiciel. - - - Article 5 - ETENDUE DES DROITS CONCEDES - -Le Concédant concède au Licencié, qui accepte, les droits suivants sur -le Logiciel pour toutes destinations et pour la durée du Contrat dans -les conditions ci-après détaillées. - -Par ailleurs, si le Concédant détient ou venait à détenir un ou -plusieurs brevets d'invention protégeant tout ou partie des -fonctionnalités du Logiciel ou de ses composants, il s'engage à ne pas -opposer les éventuels droits conférés par ces brevets aux Licenciés -successifs qui utiliseraient, exploiteraient ou modifieraient le -Logiciel. En cas de cession de ces brevets, le Concédant s'engage à -faire reprendre les obligations du présent alinéa aux cessionnaires. - - - 5.1 DROIT D'UTILISATION - -Le Licencié est autorisé à utiliser le Logiciel, sans restriction quant -aux domaines d'application, étant ci-après précisé que cela comporte: - - 1. la reproduction permanente ou provisoire du Logiciel en tout ou - partie par tout moyen et sous toute forme. - - 2. le chargement, l'affichage, l'exécution, ou le stockage du - Logiciel sur tout support. - - 3. la possibilité d'en observer, d'en étudier, ou d'en tester le - fonctionnement afin de déterminer les idées et principes qui sont - à la base de n'importe quel élément de ce Logiciel; et ceci, - lorsque le Licencié effectue toute opération de chargement, - d'affichage, d'exécution, de transmission ou de stockage du - Logiciel qu'il est en droit d'effectuer en vertu du Contrat. - - - 5.2 DROIT D'APPORTER DES CONTRIBUTIONS - -Le droit d'apporter des Contributions comporte le droit de traduire, -d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel -et le droit de reproduire le logiciel en résultant. - -Le Licencié est autorisé à apporter toute Contribution au Logiciel sous -réserve de mentionner, de façon explicite, son nom en tant qu'auteur de -cette Contribution et la date de création de celle-ci. - - - 5.3 DROIT DE DISTRIBUTION - -Le droit de distribution comporte notamment le droit de diffuser, de -transmettre et de communiquer le Logiciel au public sur tout support et -par tout moyen ainsi que le droit de mettre sur le marché à titre -onéreux ou gratuit, un ou des exemplaires du Logiciel par tout procédé. - -Le Licencié est autorisé à distribuer des copies du Logiciel, modifié ou -non, à des tiers dans les conditions ci-après détaillées. - - - 5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION - -Le Licencié est autorisé à distribuer des copies conformes du Logiciel, -sous forme de Code Source ou de Code Objet, à condition que cette -distribution respecte les dispositions du Contrat dans leur totalité et -soit accompagnée: - - 1. d'un exemplaire du Contrat, - - 2. d'un avertissement relatif à la restriction de garantie et de - responsabilité du Concédant telle que prévue aux articles 8 - et 9, - -et que, dans le cas où seul le Code Objet du Logiciel est redistribué, -le Licencié permette aux futurs Licenciés d'accéder facilement au Code -Source complet du Logiciel en indiquant les modalités d'accès, étant -entendu que le coût additionnel d'acquisition du Code Source ne devra -pas excéder le simple coût de transfert des données. - - - 5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE - -Lorsque le Licencié apporte une Contribution au Logiciel, les conditions -de distribution du Logiciel Modifié en résultant sont alors soumises à -l'intégralité des dispositions du Contrat. - -Le Licencié est autorisé à distribuer le Logiciel Modifié, sous forme de -code source ou de code objet, à condition que cette distribution -respecte les dispositions du Contrat dans leur totalité et soit -accompagnée: - - 1. d'un exemplaire du Contrat, - - 2. d'un avertissement relatif à la restriction de garantie et de - responsabilité du Concédant telle que prévue aux articles 8 - et 9, - -et que, dans le cas où seul le code objet du Logiciel Modifié est -redistribué, le Licencié permette aux futurs Licenciés d'accéder -facilement au code source complet du Logiciel Modifié en indiquant les -modalités d'accès, étant entendu que le coût additionnel d'acquisition -du code source ne devra pas excéder le simple coût de transfert des données. - - - 5.3.3 DISTRIBUTION DES MODULES EXTERNES - -Lorsque le Licencié a développé un Module Externe les conditions du -Contrat ne s'appliquent pas à ce Module Externe, qui peut être distribué -sous un contrat de licence différent. - - - 5.3.4 COMPATIBILITE AVEC LA LICENCE GNU GPL - -Le Licencié peut inclure un code soumis aux dispositions d'une des -versions de la licence GNU GPL dans le Logiciel modifié ou non et -distribuer l'ensemble sous les conditions de la même version de la -licence GNU GPL. - -Le Licencié peut inclure le Logiciel modifié ou non dans un code soumis -aux dispositions d'une des versions de la licence GNU GPL et distribuer -l'ensemble sous les conditions de la même version de la licence GNU GPL. - - - Article 6 - PROPRIETE INTELLECTUELLE - - - 6.1 SUR LE LOGICIEL INITIAL - -Le Titulaire est détenteur des droits patrimoniaux sur le Logiciel -Initial. Toute utilisation du Logiciel Initial est soumise au respect -des conditions dans lesquelles le Titulaire a choisi de diffuser son -oeuvre et nul autre n'a la faculté de modifier les conditions de -diffusion de ce Logiciel Initial. - -Le Titulaire s'engage à ce que le Logiciel Initial reste au moins régi -par le Contrat et ce, pour la durée visée à l'article 4.2. - - - 6.2 SUR LES CONTRIBUTIONS - -Le Licencié qui a développé une Contribution est titulaire sur celle-ci -des droits de propriété intellectuelle dans les conditions définies par -la législation applicable. - - - 6.3 SUR LES MODULES EXTERNES - -Le Licencié qui a développé un Module Externe est titulaire sur celui-ci -des droits de propriété intellectuelle dans les conditions définies par -la législation applicable et reste libre du choix du contrat régissant -sa diffusion. - - - 6.4 DISPOSITIONS COMMUNES - -Le Licencié s'engage expressément: - - 1. à ne pas supprimer ou modifier de quelque manière que ce soit les - mentions de propriété intellectuelle apposées sur le Logiciel; - - 2. à reproduire à l'identique lesdites mentions de propriété - intellectuelle sur les copies du Logiciel modifié ou non. - -Le Licencié s'engage à ne pas porter atteinte, directement ou -indirectement, aux droits de propriété intellectuelle du Titulaire et/ou -des Contributeurs sur le Logiciel et à prendre, le cas échéant, à -l'égard de son personnel toutes les mesures nécessaires pour assurer le -respect des dits droits de propriété intellectuelle du Titulaire et/ou -des Contributeurs. - - - Article 7 - SERVICES ASSOCIES - -7.1 Le Contrat n'oblige en aucun cas le Concédant à la réalisation de -prestations d'assistance technique ou de maintenance du Logiciel. - -Cependant le Concédant reste libre de proposer ce type de services. Les -termes et conditions d'une telle assistance technique et/ou d'une telle -maintenance seront alors déterminés dans un acte séparé. Ces actes de -maintenance et/ou assistance technique n'engageront que la seule -responsabilité du Concédant qui les propose. - -7.2 De même, tout Concédant est libre de proposer, sous sa seule -responsabilité, à ses licenciés une garantie, qui n'engagera que lui, -lors de la redistribution du Logiciel et/ou du Logiciel Modifié et ce, -dans les conditions qu'il souhaite. Cette garantie et les modalités -financières de son application feront l'objet d'un acte séparé entre le -Concédant et le Licencié. - - - Article 8 - RESPONSABILITE - -8.1 Sous réserve des dispositions de l'article 8.2, le Licencié a la -faculté, sous réserve de prouver la faute du Concédant concerné, de -solliciter la réparation du préjudice direct qu'il subirait du fait du -Logiciel et dont il apportera la preuve. - -8.2 La responsabilité du Concédant est limitée aux engagements pris en -application du Contrat et ne saurait être engagée en raison notamment: -(i) des dommages dus à l'inexécution, totale ou partielle, de ses -obligations par le Licencié, (ii) des dommages directs ou indirects -découlant de l'utilisation ou des performances du Logiciel subis par le -Licencié et (iii) plus généralement d'un quelconque dommage indirect. En -particulier, les Parties conviennent expressément que tout préjudice -financier ou commercial (par exemple perte de données, perte de -bénéfices, perte d'exploitation, perte de clientèle ou de commandes, -manque à gagner, trouble commercial quelconque) ou toute action dirigée -contre le Licencié par un tiers, constitue un dommage indirect et -n'ouvre pas droit à réparation par le Concédant. - - - Article 9 - GARANTIE - -9.1 Le Licencié reconnaît que l'état actuel des connaissances -scientifiques et techniques au moment de la mise en circulation du -Logiciel ne permet pas d'en tester et d'en vérifier toutes les -utilisations ni de détecter l'existence d'éventuels défauts. L'attention -du Licencié a été attirée sur ce point sur les risques associés au -chargement, à l'utilisation, la modification et/ou au développement et à -la reproduction du Logiciel qui sont réservés à des utilisateurs avertis. - -Il relève de la responsabilité du Licencié de contrôler, par tous -moyens, l'adéquation du produit à ses besoins, son bon fonctionnement et -de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens. - -9.2 Le Concédant déclare de bonne foi être en droit de concéder -l'ensemble des droits attachés au Logiciel (comprenant notamment les -droits visés à l'article 5). - -9.3 Le Licencié reconnaît que le Logiciel est fourni "en l'état" par le -Concédant sans autre garantie, expresse ou tacite, que celle prévue à -l'article 9.2 et notamment sans aucune garantie sur sa valeur commerciale, -son caractère sécurisé, innovant ou pertinent. - -En particulier, le Concédant ne garantit pas que le Logiciel est exempt -d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible -avec l'équipement du Licencié et sa configuration logicielle ni qu'il -remplira les besoins du Licencié. - -9.4 Le Concédant ne garantit pas, de manière expresse ou tacite, que le -Logiciel ne porte pas atteinte à un quelconque droit de propriété -intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout -autre droit de propriété. Ainsi, le Concédant exclut toute garantie au -profit du Licencié contre les actions en contrefaçon qui pourraient être -diligentées au titre de l'utilisation, de la modification, et de la -redistribution du Logiciel. Néanmoins, si de telles actions sont -exercées contre le Licencié, le Concédant lui apportera son aide -technique et juridique pour sa défense. Cette aide technique et -juridique est déterminée au cas par cas entre le Concédant concerné et -le Licencié dans le cadre d'un protocole d'accord. Le Concédant dégage -toute responsabilité quant à l'utilisation de la dénomination du -Logiciel par le Licencié. Aucune garantie n'est apportée quant à -l'existence de droits antérieurs sur le nom du Logiciel et sur -l'existence d'une marque. - - - Article 10 - RESILIATION - -10.1 En cas de manquement par le Licencié aux obligations mises à sa -charge par le Contrat, le Concédant pourra résilier de plein droit le -Contrat trente (30) jours après notification adressée au Licencié et -restée sans effet. - -10.2 Le Licencié dont le Contrat est résilié n'est plus autorisé à -utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les -licences qu'il aura concédées antérieurement à la résiliation du Contrat -resteront valides sous réserve qu'elles aient été effectuées en -conformité avec le Contrat. - - - Article 11 - DISPOSITIONS DIVERSES - - - 11.1 CAUSE EXTERIEURE - -Aucune des Parties ne sera responsable d'un retard ou d'une défaillance -d'exécution du Contrat qui serait dû à un cas de force majeure, un cas -fortuit ou une cause extérieure, telle que, notamment, le mauvais -fonctionnement ou les interruptions du réseau électrique ou de -télécommunication, la paralysie du réseau liée à une attaque -informatique, l'intervention des autorités gouvernementales, les -catastrophes naturelles, les dégâts des eaux, les tremblements de terre, -le feu, les explosions, les grèves et les conflits sociaux, l'état de -guerre... - -11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou -plusieurs occasions de se prévaloir d'une ou plusieurs dispositions du -Contrat, ne pourra en aucun cas impliquer renonciation par la Partie -intéressée à s'en prévaloir ultérieurement. - -11.3 Le Contrat annule et remplace toute convention antérieure, écrite -ou orale, entre les Parties sur le même objet et constitue l'accord -entier entre les Parties sur cet objet. Aucune addition ou modification -aux termes du Contrat n'aura d'effet à l'égard des Parties à moins -d'être faite par écrit et signée par leurs représentants dûment habilités. - -11.4 Dans l'hypothèse où une ou plusieurs des dispositions du Contrat -s'avèrerait contraire à une loi ou à un texte applicable, existants ou -futurs, cette loi ou ce texte prévaudrait, et les Parties feraient les -amendements nécessaires pour se conformer à cette loi ou à ce texte. -Toutes les autres dispositions resteront en vigueur. De même, la -nullité, pour quelque raison que ce soit, d'une des dispositions du -Contrat ne saurait entraîner la nullité de l'ensemble du Contrat. - - - 11.5 LANGUE - -Le Contrat est rédigé en langue française et en langue anglaise, ces -deux versions faisant également foi. - - - Article 12 - NOUVELLES VERSIONS DU CONTRAT - -12.1 Toute personne est autorisée à copier et distribuer des copies de -ce Contrat. - -12.2 Afin d'en préserver la cohérence, le texte du Contrat est protégé -et ne peut être modifié que par les auteurs de la licence, lesquels se -réservent le droit de publier périodiquement des mises à jour ou de -nouvelles versions du Contrat, qui posséderont chacune un numéro -distinct. Ces versions ultérieures seront susceptibles de prendre en -compte de nouvelles problématiques rencontrées par les logiciels libres. - -12.3 Tout Logiciel diffusé sous une version donnée du Contrat ne pourra -faire l'objet d'une diffusion ultérieure que sous la même version du -Contrat ou une version postérieure, sous réserve des dispositions de -l'article 5.3.4. - - - Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE - -13.1 Le Contrat est régi par la loi française. Les Parties conviennent -de tenter de régler à l'amiable les différends ou litiges qui -viendraient à se produire par suite ou à l'occasion du Contrat. - -13.2 A défaut d'accord amiable dans un délai de deux (2) mois à compter -de leur survenance et sauf situation relevant d'une procédure d'urgence, -les différends ou litiges seront portés par la Partie la plus diligente -devant les Tribunaux compétents de Paris. - - -Version 2.0 du 2006-09-05. diff --git a/xios_2311_src/arch/arch-BG_FERMI.env b/xios_2311_src/arch/arch-BG_FERMI.env deleted file mode 100644 index 8d5c78498963a7add7f3056bfe64996e8a4e9354..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_FERMI.env +++ /dev/null @@ -1,8 +0,0 @@ -module purge -module load profile/advanced -module load bgq-xl/1.0 -module load netcdf/4.1.3_par--bgq-xl--1.0 -module load hdf5/1.8.9_par--bgq-xl--1.0 -module load szip/2.1--bgq-xl--1.0 -module load zlib/1.2.7--bgq-gnu--4.4.6 -module load mass diff --git a/xios_2311_src/arch/arch-BG_FERMI.fcm b/xios_2311_src/arch/arch-BG_FERMI.fcm deleted file mode 100644 index 7ff5e4194ab0ea89f291d88eee4be728ce93b38b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_FERMI.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpixlc_r -%FCOMPILER mpixlf90_r -%LINKER mpixlf90_r - -%BASE_CFLAGS -%PROD_CFLAGS -O3 -qarch=qp -qtune=qp -%DEV_CFLAGS -%DEBUG_CFLAGS - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -qarch=qp -qtune=qp -%DEV_FFLAGS -%DEBUG_FFLAGS - -%BASE_INC -D__NONE__ -%BASE_LD -L/opt/ibmcmp/vacpp/bg/12.1/bglib64 -libmc++ - -%CPP mpixlc -EP -%FPP cpp -P -%MAKE make diff --git a/xios_2311_src/arch/arch-BG_FERMI.path b/xios_2311_src/arch/arch-BG_FERMI.path deleted file mode 100644 index 97f9f8370d8b3b21db83000c0456e7bacd338a27..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_FERMI.path +++ /dev/null @@ -1,19 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC" -NETCDF_LIBDIR="-L $NETCDF_LIB" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INC" -HDF5_LIBDIR="-L$HDF5_LIB -L$SZIP_LIB -L$ZLIB_LIB" -HDF5_LIB="-lhdf5_hl -lhdf5 -lsz -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-BG_TURING.env b/xios_2311_src/arch/arch-BG_TURING.env deleted file mode 100644 index cbf37e844524229e005496ca4948b4f98d32b395..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_TURING.env +++ /dev/null @@ -1,10 +0,0 @@ -module load compilerwrappers/no -module load netcdf/mpi/4.2.1 -module load hdf5/mpi/1.8.9 - -export NETCDF_INC=/bglocal/cn/pub/NetCDF/4.2.1/mpi/include -export NETCDF_LIB=/bglocal/cn/pub/NetCDF/4.2.1/mpi/lib - -export HDF5_INC=/bglocal/cn/pub/HDF5/1.8.9/par/include -export HDF5_LIB=/bglocal/cn/pub/HDF5/1.8.9/par/lib -export ZLIB=/bglocal/cn/pub/zlib/1.2.8/lib diff --git a/xios_2311_src/arch/arch-BG_TURING.fcm b/xios_2311_src/arch/arch-BG_TURING.fcm deleted file mode 100644 index 7ff5e4194ab0ea89f291d88eee4be728ce93b38b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_TURING.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpixlc_r -%FCOMPILER mpixlf90_r -%LINKER mpixlf90_r - -%BASE_CFLAGS -%PROD_CFLAGS -O3 -qarch=qp -qtune=qp -%DEV_CFLAGS -%DEBUG_CFLAGS - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -qarch=qp -qtune=qp -%DEV_FFLAGS -%DEBUG_FFLAGS - -%BASE_INC -D__NONE__ -%BASE_LD -L/opt/ibmcmp/vacpp/bg/12.1/bglib64 -libmc++ - -%CPP mpixlc -EP -%FPP cpp -P -%MAKE make diff --git a/xios_2311_src/arch/arch-BG_TURING.path b/xios_2311_src/arch/arch-BG_TURING.path deleted file mode 100644 index 21535e21bbdaa9e364711c839f205267cf570f36..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-BG_TURING.path +++ /dev/null @@ -1,19 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC" -NETCDF_LIBDIR="-L $NETCDF_LIB" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INC" -HDF5_LIBDIR="-L$HDF5_LIB -L$ZLIB" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-GCC_LINUX.env b/xios_2311_src/arch/arch-GCC_LINUX.env deleted file mode 100644 index c2a63962060018fdcb2a56244b94f38c12bfb70e..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_LINUX.env +++ /dev/null @@ -1,10 +0,0 @@ -export HDF5_INC_DIR=$HOME/hdf5/hdf5/include -export HDF5_LIB_DIR=$HOME/hdf5/hdf5/lib - -export NETCDF_INC_DIR=$HOME/netcdf4/include -export NETCDF_LIB_DIR=$HOME/netcdf4/lib - -export BOOST_INC_DIR=$HOME/boost -export BOOST_LIB_DIR=$HOME/boost - - diff --git a/xios_2311_src/arch/arch-GCC_LINUX.fcm b/xios_2311_src/arch/arch-GCC_LINUX.fcm deleted file mode 100644 index 93069308e97b95426b0d6c9d7402ffc96713afd7..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_LINUX.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 - -%BASE_CFLAGS -w -std=c++11 -D__XIOS_EXCEPTION -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-GCC_LINUX.path b/xios_2311_src/arch/arch-GCC_LINUX.path deleted file mode 100644 index c16402f2498f0aadd8afc33649be2e5d79932851..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_LINUX.path +++ /dev/null @@ -1,19 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="-lcurl" - -HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -BOOST_INCDIR="-I $BOOST_INC_DIR" -BOOST_LIBDIR="-L $BOOST_LIB_DIR" -BOOST_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-GCC_MACOSX.env b/xios_2311_src/arch/arch-GCC_MACOSX.env deleted file mode 100644 index a5aba075bd02e14b672a5f566a0bd0d36a98a82b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_MACOSX.env +++ /dev/null @@ -1,14 +0,0 @@ -# Environment to compile XIOS on Mac OS X -# -# Tested successfully with : -# Mac OS X 10.7.4 -# Prerequisite softwares installed with MacPorts : -# gfortran : 4.6.0 -# openmpi : 1.6.3_0 variant +gcc45 -# netcdf : 4.2.1 variant : +dap+netcdf4+openmpi (includes hdf5) -# -# Olivier Marti - olivier.marti(ad)lsce.ipsl.fr -# -export NETCDF_DIR=/opt/local -export NETCDF_INC_DIR=${NETCDF_DIR}/include -export NETCDF_LIB_DIR=${NETCDF_DIR}/lib diff --git a/xios_2311_src/arch/arch-GCC_MACOSX.fcm b/xios_2311_src/arch/arch-GCC_MACOSX.fcm deleted file mode 100644 index 2dc30e2311e69844987d27df0021376c60f07e19..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_MACOSX.fcm +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpiCC -%FCOMPILER mpif90 -%LINKER mpif90 - -%BASE_CFLAGS -w -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -g -O2 - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP /opt/local/bin/cpp-mp-4.5 -%FPP /opt/local/bin/cpp-mp-4.5 -P -%MAKE gmake - diff --git a/xios_2311_src/arch/arch-GCC_MACOSX.path b/xios_2311_src/arch/arch-GCC_MACOSX.path deleted file mode 100644 index c873de8fabdaaa8c5bb300bfeadb0b751ba612b3..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-GCC_MACOSX.path +++ /dev/null @@ -1,11 +0,0 @@ -NETCDF_INCDIR="-I${NETCDF_INC_DIR}" -NETCDF_LIBDIR="-L${NETCDF_LIB_DIR}" -NETCDF_LIB="-lnetcdff -lnetcdf" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-PW6_VARGAS.env b/xios_2311_src/arch/arch-PW6_VARGAS.env deleted file mode 100644 index 513f1dbf186a7dc614b3b5a267783fb4d1a75a2b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-PW6_VARGAS.env +++ /dev/null @@ -1,7 +0,0 @@ -module unload netcdf -module unload hdf5 -module unload phdf5 -module load phdf5/1.8.7 -module load netcdf/4.1.3-par -module unload c++ -module load c++/12.1.0.0 diff --git a/xios_2311_src/arch/arch-PW6_VARGAS.fcm b/xios_2311_src/arch/arch-PW6_VARGAS.fcm deleted file mode 100644 index ef049c8a687a43272f3d8c4b6c8f2aa9a5dd7601..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-PW6_VARGAS.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpCC_r -%FCOMPILER mpxlf2003_r -%LINKER mpCC_r - -%BASE_CFLAGS -qmkshrobj -qrtti -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -g -O0 -qfullpath - -%BASE_FFLAGS -qmkshrobj -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -%DEBUG_FFLAGS -g -O0 -qfullpath - -%BASE_INC -D__NONE__ -%BASE_LD -lxlf90 - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-PW6_VARGAS.path b/xios_2311_src/arch/arch-PW6_VARGAS.path deleted file mode 100644 index 45676423cf3654da8c92604e827114fc44e6331f..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-PW6_VARGAS.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="" -NETCDF_LIBDIR="" -NETCDF_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_ADA.env b/xios_2311_src/arch/arch-X64_ADA.env deleted file mode 100644 index 86bfeba156ec72cdb3e301e27d493197d67d7eba..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ADA.env +++ /dev/null @@ -1,6 +0,0 @@ -module load gcc/6.4.0 -module load intel/2018.2 -module unload netcdf -module unload hdf5 -#module load netcdf/mpi/4.1.3 -#module load hdf5/mpi/1.8.9 diff --git a/xios_2311_src/arch/arch-X64_ADA.fcm b/xios_2311_src/arch/arch-X64_ADA.fcm deleted file mode 100644 index d30908152c72cfc3cb95ffddb18a4db3951bee4f..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ADA.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpiicc -%FCOMPILER mpiifort -%LINKER mpiifort -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -D__XIOS_EXCEPTION -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ -Wl,-rpath=/smplocal/pub/NetCDF/4.1.3/mpi/lib:/smplocal/pub/HDF5/1.8.9/par/lib - -%CPP mpiicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_ADA.path b/xios_2311_src/arch/arch-X64_ADA.path deleted file mode 100644 index 636878ddb0e39039f0ec9f52d287907d128aed1d..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ADA.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I/smplocal/pub/NetCDF/4.1.3/mpi/include" -NETCDF_LIBDIR="-L/smplocal/pub/NetCDF/4.1.3/mpi/lib" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I/smplocal/pub/HDF5/1.8.9/par/include" -HDF5_LIBDIR="-L/smplocal/pub/HDF5/1.8.9/par/lib" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_ATHENA.env b/xios_2311_src/arch/arch-X64_ATHENA.env deleted file mode 100644 index 0fe35c7c171ec290dd651ec84229e448ae032dfa..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ATHENA.env +++ /dev/null @@ -1,15 +0,0 @@ -# Environment to compile XIOS on Athena -# -# Prerequisite softwares installed with -# -module load INTEL/intel_xe_2013 -module load HDF5/hdf5-1.8.11_parallel -module load NETCDF/netcdf-4.3_parallel -module load NETCDF/parallel-netcdf-1.3.1 - -#export NETCDF_DIR=${NETCDF} -#export PNETCDF_DIR=${PNETCDF} -export NETCDF_DIR=/users/home/opt/netcdf/netcdf-4.3_parallel -export PNETCDF_DIR=/users/home/opt/netcdf/parallel-netcdf-1.3.1 -export HDF5_DIR=/users/home/opt/hdf5/hdf5-1.8.11_parallel - diff --git a/xios_2311_src/arch/arch-X64_ATHENA.fcm b/xios_2311_src/arch/arch-X64_ATHENA.fcm deleted file mode 100644 index c504605f20bdf52a18fd2720fee8b5a872f40a85..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ATHENA.fcm +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpiicc -%FCOMPILER mpiifort -%LINKER mpiifort -nofor-main - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ -lz -lcurl -Wl -lgpfs - -%CPP mpiicc -EP -%FPP cpp -P -%MAKE gmake - - diff --git a/xios_2311_src/arch/arch-X64_ATHENA.path b/xios_2311_src/arch/arch-X64_ATHENA.path deleted file mode 100644 index e5816d93ec25b87105047cfdcc0fa059d1a969f1..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ATHENA.path +++ /dev/null @@ -1,12 +0,0 @@ -NETCDF_INCDIR="-I${NETCDF_DIR}/include -I${PNETCDF_DIR}/include" -NETCDF_LIBDIR="-L${NETCDF_DIR}/lib -L${PNETCDF_DIR}/lib" -NETCDF_LIB="-L${NETCDF_DIR}/lib -lnetcdff -L${NETCDF_DIR}/lib -lnetcdf -L${PNETCDF_DIR}/lib -lpnetcdf" - -HDF5_INCDIR="-I${HDF5_DIR}/include" -HDF5_LIBDIR="-L${HDF5_DIR}/lib" -HDF5_LIB="-L${HDF5_DIR}/lib -lhdf5_hl -L${HDF5_DIR}/lib -lhdf5" - -OASIS_INCDIR="" -OASIS_LIBDIR="" -OASIS_LIB="" - diff --git a/xios_2311_src/arch/arch-X64_CURIE.env b/xios_2311_src/arch/arch-X64_CURIE.env deleted file mode 100644 index df64528f6322a99556f7866753c9a74d39836248..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE.env +++ /dev/null @@ -1,6 +0,0 @@ -module unload netcdf -module unload hdf5 -module unload boost -module load netcdf/4.3.3.1_hdf5_parallel -module load boost -module load blitz diff --git a/xios_2311_src/arch/arch-X64_CURIE.fcm b/xios_2311_src/arch/arch-X64_CURIE.fcm deleted file mode 100644 index fa2bdd19bb1595aedb97ec10f618c2d2cf46b05a..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE.fcm +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -#%DEV_CFLAGS -g -traceback -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -#%DEV_FFLAGS -g -traceback -%DEV_FFLAGS -g -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_CURIE.path b/xios_2311_src/arch/arch-X64_CURIE.path deleted file mode 100644 index 3c0526f06a1093befe666bddb6b714338dd5c6d1..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE.path +++ /dev/null @@ -1,27 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INCDIR" -NETCDF_LIBDIR="-L $NETCDF_LIBDIR" -NETCDF_LIB="-lnetcdf -lnetcdff" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-X64_CURIE_GCC.env b/xios_2311_src/arch/arch-X64_CURIE_GCC.env deleted file mode 100644 index af605fc6a1d6aff423b9763ebca5d54f83e24a41..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_GCC.env +++ /dev/null @@ -1,12 +0,0 @@ -module unload netcdf -module unload hdf5 -module unload boost -module unload blitz -module load netcdf/4.3.3.1_hdf5_parallel -module load gnu/4.9.1 -module load boost -module load blitz -export OMPI_CC=gcc -export OMPI_CXX=g++ -export OMPI_F77=gfortran -export OMPI_FC=gfortran diff --git a/xios_2311_src/arch/arch-X64_CURIE_GCC.fcm b/xios_2311_src/arch/arch-X64_CURIE_GCC.fcm deleted file mode 100644 index c1e083d15679ff644c202984f1ad7dcd4ca39565..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_GCC.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 - -%BASE_CFLAGS -std=c++11 -w -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -D__NONE__ -ffree-line-length-none -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_CURIE_GCC.path b/xios_2311_src/arch/arch-X64_CURIE_GCC.path deleted file mode 100644 index 231f366fa847b0d27b62bef302ce00114549daae..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_GCC.path +++ /dev/null @@ -1,23 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INCDIR" -NETCDF_LIBDIR="-L $NETCDF_LIBDIR" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_CURIE_PGI.env b/xios_2311_src/arch/arch-X64_CURIE_PGI.env deleted file mode 100644 index aae297119bcaf96c465b3235f0f8ff5ab6f7e07a..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_PGI.env +++ /dev/null @@ -1,16 +0,0 @@ -module load netcdf/4.3.3.1_hdf5_parallel -#module unload intel -module unload pgi -module unload gnu -module unload boost -module unload blitz -module load pgi/14.10 -module load boost -module load blitz - - - -export OMPI_CC=pgcc -export OMPI_CXX=pgcpp -export OMPI_F77=pgf77 -export OMPI_FC=pgf95 diff --git a/xios_2311_src/arch/arch-X64_CURIE_PGI.fcm b/xios_2311_src/arch/arch-X64_CURIE_PGI.fcm deleted file mode 100644 index 46c11fe7595c3761b3d106872da1fb3a7f2719f3..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_PGI.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicxx -noswitcherror -%FCOMPILER mpif90 -noswitcherror -%LINKER mpif90 -noswitcherror - -%BASE_CFLAGS c++11 -D__NONE__ -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -pgcpplibs - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_CURIE_PGI.path b/xios_2311_src/arch/arch-X64_CURIE_PGI.path deleted file mode 100644 index 231f366fa847b0d27b62bef302ce00114549daae..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_PGI.path +++ /dev/null @@ -1,23 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INCDIR" -NETCDF_LIBDIR="-L $NETCDF_LIBDIR" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.env b/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.env deleted file mode 100644 index 9d06affa8bc8955aa6786a684df5bfee81e97284..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.env +++ /dev/null @@ -1,5 +0,0 @@ -module unload netcdf -module unload hdf5 -module unload vampir -module load vampir/8.2.1 -module load netcdf/4.3.3.1_hdf5_parallel diff --git a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.fcm b/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.fcm deleted file mode 100644 index db7a1efa4025d012f13ea090eb28afb0561622ed..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.fcm +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER vtcc -vt:cc mpicc -vt:inst manual -DVTRACE -%FCOMPILER vtf90 -vt:f90 mpif90 -vt:inst manual -DVTRACE -%LINKER vtf90 -vt:f90 mpif90 -vt:inst manual -nofor-main -DVTRACE -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.path b/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.path deleted file mode 100644 index 3b3f6914c0158e99c1fac02575b7343758bd1e91..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_CURIE_VAMPIR.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INCDIR" -NETCDF_LIBDIR="-L$NETCDF_LIBDIR" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_HORUS.env b/xios_2311_src/arch/arch-X64_HORUS.env deleted file mode 100644 index a065dbf6bd2d0f42a8543f1e66646eb31a7b57e8..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_HORUS.env +++ /dev/null @@ -1,6 +0,0 @@ -export HDF5_INC_DIR=$HOME/hdf5/include -export HDF5_LIB_DIR=$HOME/hdf5/lib - -export NETCDF_INC_DIR=$HOME/netcdf4/include -export NETCDF_LIB_DIR=$HOME/netcdf4/lib - diff --git a/xios_2311_src/arch/arch-X64_HORUS.fcm b/xios_2311_src/arch/arch-X64_HORUS.fcm deleted file mode 100644 index bef8b8db3b7b6b873fe3a5e3d72a875910096edd..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_HORUS.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 - -%BASE_CFLAGS -w -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_HORUS.path b/xios_2311_src/arch/arch-X64_HORUS.path deleted file mode 100644 index 65c11769c3e0a3cf65a95e93d68d013c8022c118..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_HORUS.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_IRENE-ITAC.env b/xios_2311_src/arch/arch-X64_IRENE-ITAC.env deleted file mode 100644 index 97d80d8d002228d6bd9435acd6012407b3107bdd..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-ITAC.env +++ /dev/null @@ -1,11 +0,0 @@ -module purge -module load itac/2019.0.018 -module load gnu -module load feature/bridge/heterogenous_mpmd -export NETCDFC_INCDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/include -export NETCDFFORTRAN_INCDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/include -export HDF5_INCDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/include -export NETCDFC_LIBDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/lib -export NETCDFFORTRAN_LIBDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/lib -export HDF5_LIBDIR=$WORKDIR/NETCDF4_HDF5/HDF5_1.10.5_INTEL/lib -source itacvars.sh diff --git a/xios_2311_src/arch/arch-X64_IRENE-ITAC.fcm b/xios_2311_src/arch/arch-X64_IRENE-ITAC.fcm deleted file mode 100644 index 76b43ac25d30264037784a6cded6561df5ba19ac..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-ITAC.fcm +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -trace -DITAC -I$ITAC_INCDIR -%FCOMPILER mpif90 -trace -%LINKER mpif90 -trace -nofor-main -L$ITAC_LIBDIR - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -g -Ofast -xHost -D BOOST_DISABLE_ASSERTS -#%DEV_CFLAGS -g -traceback -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -g -traceback -#%DEV_FFLAGS -g -traceback -%DEV_FFLAGS -g -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_IRENE-ITAC.path b/xios_2311_src/arch/arch-X64_IRENE-ITAC.path deleted file mode 100644 index 4e9e3a2b99cccdbe51bd62d0e35b21965afd482d..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-ITAC.path +++ /dev/null @@ -1,28 +0,0 @@ -NETCDF_INCDIR="-I $NETCDFC_INCDIR -I $NETCDFFORTRAN_INCDIR" -NETCDF_LIBDIR="-L $NETCDFC_LIBDIR -L $NETCDFFORTRAN_LIBDIR" -NETCDF_LIB="-lnetcdf -lnetcdff" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INCDIR" -HDF5_LIBDIR="-L$HDF5_LIBDIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.env b/xios_2311_src/arch/arch-X64_IRENE-SCOREP.env deleted file mode 100644 index ce1e550f0ef0ef2ac691bf9bac43518ae3e3d5a8..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.env +++ /dev/null @@ -1,15 +0,0 @@ -module purge -module load intel/19.0.2.187 -module load gnu -module load mpi/openmpi/2.0.4 -module load flavor/hdf5/parallel -module load hdf5/1.8.20 -module load netcdf-c/4.6.0 -module load netcdf-fortran/4.4.4 -module load feature/bridge/heterogenous_mpmd -module load scorep/4.1 -module load vampir -export SCOREP_ENABLE_TRACING=true -export SCOREP_ENABLE_PROFILING=false - - diff --git a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.fcm b/xios_2311_src/arch/arch-X64_IRENE-SCOREP.fcm deleted file mode 100644 index 0787cc19f73c3f6801aae7a3213beb26328c64c4..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.fcm +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER scorep --nocompiler --nomemory --mpp=mpi --user mpicc -DSCOREP -%FCOMPILER scorep --nocompiler --nomemory --mpp=mpi --user mpif90 -DSCOREP -%LINKER scorep --nocompiler --nomemory --mpp=mpi --user mpif90 -DSCOREP -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -Ofast -xHost -D BOOST_DISABLE_ASSERTS -#%DEV_CFLAGS -g -traceback -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -g -traceback -#%DEV_FFLAGS -g -traceback -%DEV_FFLAGS -g -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.path b/xios_2311_src/arch/arch-X64_IRENE-SCOREP.path deleted file mode 100644 index 4e9e3a2b99cccdbe51bd62d0e35b21965afd482d..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE-SCOREP.path +++ /dev/null @@ -1,28 +0,0 @@ -NETCDF_INCDIR="-I $NETCDFC_INCDIR -I $NETCDFFORTRAN_INCDIR" -NETCDF_LIBDIR="-L $NETCDFC_LIBDIR -L $NETCDFFORTRAN_LIBDIR" -NETCDF_LIB="-lnetcdf -lnetcdff" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INCDIR" -HDF5_LIBDIR="-L$HDF5_LIBDIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-X64_IRENE.env b/xios_2311_src/arch/arch-X64_IRENE.env deleted file mode 100644 index 20d65b1647cc8e893c7637461c56975ea2bcf9ad..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE.env +++ /dev/null @@ -1,9 +0,0 @@ -module unload netcdf-c netcdf-fortran hdf5 flavor perl hdf5 boost blitz mpi gnu -#module purge -module load flavor/hdf5/parallel -module load netcdf-fortran/4.4.4 -module load hdf5/1.8.20 -module load gnu/7.3.0 -module load boost -module load blitz -module load feature/bridge/heterogenous_mpmd diff --git a/xios_2311_src/arch/arch-X64_IRENE.fcm b/xios_2311_src/arch/arch-X64_IRENE.fcm deleted file mode 100644 index 063a902508a463dc74da816a952e4e2967415167..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE.fcm +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -D__XIOS_EXCEPTION -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -#%DEV_CFLAGS -g -traceback -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -#%DEV_FFLAGS -g -traceback -%DEV_FFLAGS -g -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_IRENE.path b/xios_2311_src/arch/arch-X64_IRENE.path deleted file mode 100644 index 4e9e3a2b99cccdbe51bd62d0e35b21965afd482d..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_IRENE.path +++ /dev/null @@ -1,28 +0,0 @@ -NETCDF_INCDIR="-I $NETCDFC_INCDIR -I $NETCDFFORTRAN_INCDIR" -NETCDF_LIBDIR="-L $NETCDFC_LIBDIR -L $NETCDFFORTRAN_LIBDIR" -NETCDF_LIB="-lnetcdf -lnetcdff" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INCDIR" -HDF5_LIBDIR="-L$HDF5_LIBDIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -BOOST_INCDIR="-I $BOOST_INCDIR" -BOOST_LIBDIR="-L $BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I $BLITZ_INCDIR" -BLITZ_LIBDIR="-L $BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" - - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="-L${WORKDIR}/ADDR2LINE_LIB" -ADDR2LINE_LIB="-laddr2line" diff --git a/xios_2311_src/arch/arch-X64_JADE.env b/xios_2311_src/arch/arch-X64_JADE.env deleted file mode 100644 index 06c9557ac6c8841c61b95d360fe19e14ffa92151..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JADE.env +++ /dev/null @@ -1,12 +0,0 @@ -module unload hdf5 -module unload zlib -module unload pnetcdf -module unload netcdf - -module load hdf5/1.8.9 -module load pnetcdf/1.3.0 -module load zlib/1.2.5 -module load netcdf_C/4.2.1.1 - -export NETCDF_INC_DIR="/opt/software/SGI/netcdf/C/4.2.1.1/include" -export NETCDF_LIB_DIR="/opt/software/SGI/netcdf/C/4.2.1.1/lib" diff --git a/xios_2311_src/arch/arch-X64_JADE.fcm b/xios_2311_src/arch/arch-X64_JADE.fcm deleted file mode 100644 index 6e08ca3fabc7f12ae13860a8451e14cb54de889c..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JADE.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER icc -%FCOMPILER ifort -%LINKER ifort - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ -lifcore -lintlc -lmpi - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_JADE.path b/xios_2311_src/arch/arch-X64_JADE.path deleted file mode 100644 index 26ec954f126570590259749d7b430cadbc143508..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JADE.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="" -NETCDF_LIB="-lnetcdf -lpnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_JEANZAY.env b/xios_2311_src/arch/arch-X64_JEANZAY.env deleted file mode 100644 index 0dd276baf017aba487637331687eb54245019264..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JEANZAY.env +++ /dev/null @@ -1,8 +0,0 @@ -module purge -module load gcc/9.1.0 -module load intel-all -module load gcc/9.1.0 -module load hdf5/1.10.5-mpi -module load netcdf/4.7.2-mpi -module load netcdf-fortran/4.5.2-mpi - diff --git a/xios_2311_src/arch/arch-X64_JEANZAY.fcm b/xios_2311_src/arch/arch-X64_JEANZAY.fcm deleted file mode 100644 index 2f7eda5b751af2d0addba58ad9f4e6a27bdaa603..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JEANZAY.fcm +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -#################### Projet XIOS ################### -################################################################################# - - -%CCOMPILER mpiicc -%FCOMPILER mpiifort -%LINKER mpiifort -nofor-main - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -std=c++11 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpiicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_JEANZAY.path b/xios_2311_src/arch/arch-X64_JEANZAY.path deleted file mode 100644 index 03839412b76f227643daaccc95d63aefc42929fd..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_JEANZAY.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="" -NETCDF_LIBDIR="" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_OCCIGEN.env b/xios_2311_src/arch/arch-X64_OCCIGEN.env deleted file mode 100644 index adb7e54069dd983e163b5097de93f512caf3640b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_OCCIGEN.env +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -module unload netcdf hdf5 intel bullxmpi - -module load intel -module load bullxmpi -module load hdf5 -module load netcdf - -export HDF5_INC_DIR=$HDF5HOME/include -export HDF5_LIB_DIR=$HDF5HOME/lib diff --git a/xios_2311_src/arch/arch-X64_OCCIGEN.fcm b/xios_2311_src/arch/arch-X64_OCCIGEN.fcm deleted file mode 100644 index 21041e3d1cfc5a0424e65864a95dcb41a232c251..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_OCCIGEN.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet xios - xmlioserver ##################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_OCCIGEN.path b/xios_2311_src/arch/arch-X64_OCCIGEN.path deleted file mode 100644 index 67a9fbf009633a3f083e1d9d91b9eb1ba6e91cd7..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_OCCIGEN.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I$NETCDFF_INCDIR -I$NETCDF_INC_DIR" -NETCDF_LIBDIR="-L$NETCDFF_LIBDIR -L$NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I$HDF5_INC_DIR" -HDF5_LIBDIR="-L$HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_POINCARE.env b/xios_2311_src/arch/arch-X64_POINCARE.env deleted file mode 100644 index cbcf954fe629c441764212e996ab0619e4eb4f96..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_POINCARE.env +++ /dev/null @@ -1,3 +0,0 @@ -module unload hdf5 netcdf4 -module load intel/15.0.0 openmpi/1.6.3_intel15.0.0 hdf5/1.8.16_intel_openmpi netcdf4/4.3.3.1_intel_openmpi - diff --git a/xios_2311_src/arch/arch-X64_POINCARE.fcm b/xios_2311_src/arch/arch-X64_POINCARE.fcm deleted file mode 100644 index df1814cacbf65f70a5ff059f7f0222dbd335b257..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_POINCARE.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -std=c++11 -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_POINCARE.path b/xios_2311_src/arch/arch-X64_POINCARE.path deleted file mode 100644 index b1fab107ee65583436cea11945bfeb96526e2f8d..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_POINCARE.path +++ /dev/null @@ -1,19 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF4_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF4_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz" - -OASIS_INCDIR="" -OASIS_LIBDIR="" -OASIS_LIB="" - -#only for MEMTRACK debuging : developper only -ADDR2LINE_LIBDIR="" -ADDR2LINE_LIB="" diff --git a/xios_2311_src/arch/arch-X64_TITANE.env b/xios_2311_src/arch/arch-X64_TITANE.env deleted file mode 100644 index 260ce7ee5e5412e5f85f0dd3425769b9565dc152..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE.env +++ /dev/null @@ -1,4 +0,0 @@ -module unload netcdf -module unload hdf5 -module load netcdf/4.2 -module load hdf5/1.8.8 diff --git a/xios_2311_src/arch/arch-X64_TITANE.fcm b/xios_2311_src/arch/arch-X64_TITANE.fcm deleted file mode 100644 index 4117fac068d282e859eccd6edd28c3d0279d5c66..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D __NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_TITANE.path b/xios_2311_src/arch/arch-X64_TITANE.path deleted file mode 100644 index fc522ecd64f0d47b08210b4c0ff1962f1896a24b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.env b/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.env deleted file mode 100644 index 260ce7ee5e5412e5f85f0dd3425769b9565dc152..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.env +++ /dev/null @@ -1,4 +0,0 @@ -module unload netcdf -module unload hdf5 -module load netcdf/4.2 -module load hdf5/1.8.8 diff --git a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.fcm b/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.fcm deleted file mode 100644 index a4b92b7bc4892dd823dfe882dcbcd28912d7f071..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.fcm +++ /dev/null @@ -1,23 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER vtcc -vt:cc mpicc -vt:inst manual -DVTRACE -%FCOMPILER vtf90 -vt:f90 mpif90 -vt:inst manual -DVTRACE -%LINKER vtf90 -vt:f90 mpif90 -vt:inst manual -nofor-main -DVTRACE -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.path b/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.path deleted file mode 100644 index fc522ecd64f0d47b08210b4c0ff1962f1896a24b..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_TITANE_VAMPIR.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_YELLOWSTONE.env b/xios_2311_src/arch/arch-X64_YELLOWSTONE.env deleted file mode 100644 index 2765b1917a12added1d89cdd07526666c9387141..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_YELLOWSTONE.env +++ /dev/null @@ -1,4 +0,0 @@ -module unload netcdf -module unload intel -module load intel/16.0.2 -module load netcdf-mpi/4.4.0 diff --git a/xios_2311_src/arch/arch-X64_YELLOWSTONE.fcm b/xios_2311_src/arch/arch-X64_YELLOWSTONE.fcm deleted file mode 100644 index 83d1cf0447143f32145764b3959e0fd594de5c0a..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_YELLOWSTONE.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpiicc -%FCOMPILER mpiifort -%LINKER mpiifort -nofor-main - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpiicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-X64_YELLOWSTONE.path b/xios_2311_src/arch/arch-X64_YELLOWSTONE.path deleted file mode 100644 index fa7198190d8f4f9aeac743ccdd9506f94bb1e2e3..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_YELLOWSTONE.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I/$NETCDF/include" -NETCDF_LIBDIR="-L/$NETCDF/lib" -NETCDF_LIB="-lnetcdff -lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-X64_ZEUS.env b/xios_2311_src/arch/arch-X64_ZEUS.env deleted file mode 100644 index 1ef7b107da4ef22b1faef6776b0313a79f2ba5da..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ZEUS.env +++ /dev/null @@ -1,15 +0,0 @@ -# Environment to compile XIOS on ZEUS cluster at CMCC - -module load intel20.1/szip/2.1.1 -module load cmake -module load gcc_9.1.0/9.1.0 -module load intel20.1/20.1.217 -module load impi20.1/19.7.217 -module load impi20.1/hdf5-threadsafe/1.12.0 -module load impi20.1/netcdf-threadsafe/C_4.7.4-F_4.5.3_CXX_4.3.1 -module load impi20.1/parallel-netcdf/1.12.1 - -export HDF5_DIR=$HDF5 -export NETCDF_DIR=$NETCDF -export PNETCDF_DIR=$PNETCDF - diff --git a/xios_2311_src/arch/arch-X64_ZEUS.fcm b/xios_2311_src/arch/arch-X64_ZEUS.fcm deleted file mode 100644 index 363b1ea4daad10d5109040f274a3a6426e80f46e..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ZEUS.fcm +++ /dev/null @@ -1,23 +0,0 @@ -# Environment to compile XIOS on ZEUS cluster at CMCC - -%CCOMPILER mpiicc -%FCOMPILER mpiifort -%LINKER mpiifort -nofor-main - -%BASE_CFLAGS -diag-disable 1125 -diag-disable 279 -std=c++11 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -traceback -%DEBUG_CFLAGS -DBZ_DEBUG -g -traceback -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -r8 -fp-model source -xSKYLAKE-AVX512 -qopt-zmm-usage=low -no-fma -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ -lgpfs - -%CPP mpiicc -EP -%FPP cpp -P -%MAKE gmake - diff --git a/xios_2311_src/arch/arch-X64_ZEUS.path b/xios_2311_src/arch/arch-X64_ZEUS.path deleted file mode 100644 index dab340217faa915b3178945b9802b22d567440bb..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-X64_ZEUS.path +++ /dev/null @@ -1,14 +0,0 @@ -# Environment to compile XIOS on ZEUS cluster at CMCC - -NETCDF_INCDIR="-I${NETCDF_DIR}/include -I${PNETCDF_DIR}/include" -NETCDF_LIBDIR="-L${NETCDF_DIR}/lib -L${PNETCDF_DIR}/lib" -NETCDF_LIB="-L${NETCDF_DIR}/lib -lnetcdff -L${NETCDF_DIR}/lib -lnetcdf -L${PNETCDF_DIR}/lib -lpnetcdf" - -HDF5_INCDIR="-I${HDF5_DIR}/include" -HDF5_LIBDIR="-L${HDF5_DIR}/lib" -HDF5_LIB="-L${HDF5_DIR}/lib -lhdf5_hl -L${HDF5_DIR}/lib -lhdf5" - -OASIS_INCDIR="" -OASIS_LIBDIR="" -OASIS_LIB="" - diff --git a/xios_2311_src/arch/arch-XC30_Cray.env b/xios_2311_src/arch/arch-XC30_Cray.env deleted file mode 100644 index e66c049cd96c4558f0b3304d6bb0c8fd602a53eb..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XC30_Cray.env +++ /dev/null @@ -1,11 +0,0 @@ -export HDF5_INC_DIR="" -export HDF5_LIB_DIR="" - -export NETCDF_INC_DIR="" -export NETCDF_LIB_DIR="" - -export BOOST_INC_DIR="" -export BOOST_LIB_DIR="" - -export BLITZ_INC_DIR="" -export BLITZ_LIB_DIR="" diff --git a/xios_2311_src/arch/arch-XC30_Cray.fcm b/xios_2311_src/arch/arch-XC30_Cray.fcm deleted file mode 100644 index a3829d7425557a9c6469d1f02a3eac9ec7c566f8..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XC30_Cray.fcm +++ /dev/null @@ -1,42 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -# Cray XC build instructions for XIOS/xios-1.0 -# These files have been tested on -# Archer (XC30), ECMWF (XC30), and the Met Office (XC40) using the Cray PrgEnv. -# One must also: -# module load cray-netcdf-hdf5parallel/4.3.2 -# There is a bug in the CC compiler prior to cce/8.3.7 using -O3 or -O2 -# The workarounds are not ideal: -# Use -Gfast and put up with VERY large executables -# Use -O1 and possibly suffer a significant performance loss. -# -# Mike Rezny Met Office 23/03/2015 - -%CCOMPILER CC -%FCOMPILER ftn -%LINKER CC - -%BASE_CFLAGS -hstd=c++11 -DMPICH_SKIP_MPICXX -h msglevel_4 -h zero -h gnu - -## Only use -O3 if you can load module cce/8.3.7 or later -#%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS - -## Otherwise take your pick of these, refer to information above. -%PROD_CFLAGS -O1 -DBOOST_DISABLE_ASSERTS -## %PROD_CFLAGS -Gfast -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -em -m 4 -e0 -eZ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -G2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -D__NONE__ - -%CPP cpp -%FPP cpp -P -CC -%MAKE gmake diff --git a/xios_2311_src/arch/arch-XC30_Cray.path b/xios_2311_src/arch/arch-XC30_Cray.path deleted file mode 100644 index 633c7bf5ac51c4ee644a43968cc36af9e4acd7b2..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XC30_Cray.path +++ /dev/null @@ -1,26 +0,0 @@ -NETCDF_INCDIR="" -NETCDF_LIBDIR="" -NETCDF_LIB="" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - -BOOST_INCDIR="-I$BOOST_INCDIR" -BOOST_LIBDIR="-L$BOOST_LIBDIR" -BOOST_LIB="" - -BLITZ_INCDIR="-I$BLITZ_INCDIR" -BLITZ_LIBDIR="-L$BLITZ_LIBDIR" -BLITZ_LIB="" - -OASIS_INCDIR="" -OASIS_LIBDIR="" -OASIS_LIB="" -#OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -#OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -#OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-XE6_LYNX.env b/xios_2311_src/arch/arch-XE6_LYNX.env deleted file mode 100644 index 8790aeb80bff6911d98e937eb3d6e8697135ad81..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XE6_LYNX.env +++ /dev/null @@ -1,4 +0,0 @@ -export HDF5_INC_DIR=$WORKDIR/hdf5/include -export HDF5_LIB_DIR=${CRAY_HDF5_DIR}/hdf5-parallel-cce/lib -export NETCDF_INC_DIR=${CRAY_NETCDF_DIR}/netcdf-hdf5parallel-cce/include -export NETCDF_LIB_DIR=${CRAY_NETCDF_DIR}/netcdf-hdf5parallel-cce/lib diff --git a/xios_2311_src/arch/arch-XE6_LYNX.fcm b/xios_2311_src/arch/arch-XE6_LYNX.fcm deleted file mode 100644 index f444215b198f7936f1b75cd38f5a09e74cc11aec..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XE6_LYNX.fcm +++ /dev/null @@ -1,24 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER CC -%FCOMPILER ftn -%LINKER CC - -%BASE_CFLAGS -DMPICH_SKIP_MPICXX -h msglevel_4 -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -O2 -%DEBUG_CFLAGS -g - -%BASE_FFLAGS -em -m 4 -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -%DEBUG_FFLAGS -g - -%BASE_INC -D__NONE__ -%BASE_LD -D__NONE__ - -%CPP cpp -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-XE6_LYNX.path b/xios_2311_src/arch/arch-XE6_LYNX.path deleted file mode 100644 index fa5642cc7a24f04dd740b310a814b17cb217b6cb..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-XE6_LYNX.path +++ /dev/null @@ -1,15 +0,0 @@ -NETCDF_INCDIR="-I $NETCDF_INC_DIR" -NETCDF_LIBDIR="-L $NETCDF_LIB_DIR" -NETCDF_LIB="-lnetcdf" - -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" - -#HDF5_INCDIR="-I $HDF5_INC_DIR" -HDF5_LIBDIR="-L $HDF5_LIB_DIR" -HDF5_LIB="-lhdf5_hl -lhdf5 -lz -lcurl" - -OASIS_INCDIR="-I$PWD/../../oasis3-mct/BLD/build/lib/psmile.MPI1" -OASIS_LIBDIR="-L$PWD/../../oasis3-mct/BLD/lib" -OASIS_LIB="-lpsmile.MPI1 -lscrip -lmct -lmpeu" diff --git a/xios_2311_src/arch/arch-ifort_CICLAD.fcm b/xios_2311_src/arch/arch-ifort_CICLAD.fcm deleted file mode 100644 index fa78556ea0757052f7c512dfb7da52dcd09550ea..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-ifort_CICLAD.fcm +++ /dev/null @@ -1,20 +0,0 @@ -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -fPIC -std=c++11 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -fno-inline - -%BASE_FFLAGS -fPIC -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-ifort_CICLAD.path b/xios_2311_src/arch/arch-ifort_CICLAD.path deleted file mode 100644 index 13f6989fe5af8f15f6f2198d7a2176f58a5b3e70..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-ifort_CICLAD.path +++ /dev/null @@ -1,10 +0,0 @@ -NETCDF_INCDIR="-I /opt/netcdf4/4.4.1.1-parallel/ifort/include" -NETCDF_LIBDIR="-L/opt/netcdf4/4.4.1.1-parallel/ifort/lib" -NETCDF_LIB="-lnetcdff -lnetcdf" -MPI_INCDIR="" -MPI_LIBDIR="" -MPI_LIB="" -HDF5_INCDIR="" -HDF5_LIBDIR="" -HDF5_LIB="" - diff --git a/xios_2311_src/arch/arch-ifort_LSCE.fcm b/xios_2311_src/arch/arch-ifort_LSCE.fcm deleted file mode 100644 index 54160ef328ebed007dd6d329c52ab9680d4160f9..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-ifort_LSCE.fcm +++ /dev/null @@ -1,20 +0,0 @@ -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -std=c++11 -%PROD_CFLAGS -O3 -D BOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 -traceback -%DEBUG_FFLAGS -g -traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake diff --git a/xios_2311_src/arch/arch-ifort_LSCE.path b/xios_2311_src/arch/arch-ifort_LSCE.path deleted file mode 100644 index 2c14b21698128b89eee62b52c5746c6283d2e205..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-ifort_LSCE.path +++ /dev/null @@ -1,6 +0,0 @@ -NETCDF_INCDIR="-I /usr/local/install/netcdf-4.3.2p/include" -NETCDF_LIBDIR="-L/usr/local/install/netcdf-4.3.2p/lib" -NETCDF_LIB="-lnetcdf -lnetcdff" -HDF5_INCDIR="-I /usr/local/install/hdf5-1.8.9p/include" -HDF5_LIBDIR="-L/usr/local/install/hdf5-1.8.9p/lib" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz -lcurl" diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel.env b/xios_2311_src/arch/arch-mn5_gpp_intel.env deleted file mode 100644 index 83e84d18c4671cae260db8213c80c6404d09ee4f..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel.env +++ /dev/null @@ -1,5 +0,0 @@ -module --force purge -module load intel/2023.2.0 impi/2021.10.0 mkl/2023.2.0 hdf5/1.14.1-2 -module load pnetcdf/1.12.3 netcdf/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3 -module load boost/1.75.0 -module load ucx diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel.fcm b/xios_2311_src/arch/arch-mn5_gpp_intel.fcm deleted file mode 100644 index a356d28c97811e25cde31ef18f800cc3c910a26c..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel.fcm +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpif90 -%LINKER mpif90 -nofor-main - -%BASE_CFLAGS -ansi -w -std=c++11 -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 --traceback -%DEBUG_FFLAGS -g --traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP mpicc -EP -%FPP cpp -P -%MAKE gmake - diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel.path b/xios_2311_src/arch/arch-mn5_gpp_intel.path deleted file mode 100644 index 586ab58641b0860a27a052291815887c68175054..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel.path +++ /dev/null @@ -1,8 +0,0 @@ - -NETCDF_INCDIR="-I/apps/GPP/NETCDF/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3/INTEL/IMPI/include" -NETCDF_LIBDIR="-L/apps/GPP/NETCDF/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3/INTEL/IMPI/lib" -NETCDF_LIB="-lnetcdf -lnetcdff" -HDF5_INCDIR="-I/apps/GPP/HDF5/1.14.1-2/INTEL/IMPI/include" -HDF5_LIBDIR="-L/apps/GPP/HDF5/1.14.1-2/INTEL/IMPI/lib" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.env b/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.env deleted file mode 100644 index 6f58885ae1001b71644d599ad28f14323e22cde8..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.env +++ /dev/null @@ -1,4 +0,0 @@ -module --force purge -module load intel/2023.2.0 openmpi/4.1.5 ucx -module load hdf5/1.14.1-2-openmpi pnetcdf/1.12.3-openmpi -module load netcdf/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3-openmpi diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.fcm b/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.fcm deleted file mode 100644 index 995d145e49ad5cb14ed16f2947d7559927431e11..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.fcm +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################ -################### Projet XIOS ################### -################################################################################ - -%CCOMPILER mpicc -%FCOMPILER mpifort -%LINKER mpifort - -%BASE_CFLAGS -ansi -w -std=c++11 -%PROD_CFLAGS -O3 -DBOOST_DISABLE_ASSERTS -%DEV_CFLAGS -g -%DEBUG_CFLAGS -DBZ_DEBUG -g -fno-inline - -%BASE_FFLAGS -D__NONE__ -%PROD_FFLAGS -O3 -%DEV_FFLAGS -g -O2 --traceback -%DEBUG_FFLAGS -g --traceback - -%BASE_INC -D__NONE__ -%BASE_LD -lstdc++ - -%CPP cpp -%FPP fpp -%MAKE gmake - diff --git a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.path b/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.path deleted file mode 100644 index 87bca8240c8e58082bdb0f7b61407a75e924546c..0000000000000000000000000000000000000000 --- a/xios_2311_src/arch/arch-mn5_gpp_intel_openmpi.path +++ /dev/null @@ -1,8 +0,0 @@ - -NETCDF_INCDIR="-I/apps/GPP/NETCDF/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3/INTEL/OPENMPI/include" -NETCDF_LIBDIR="-L/apps/GPP/NETCDF/c-4.9.2_fortran-4.6.1_cxx4-4.3.1_hdf5-1.14.1-2_pnetcdf-1.12.3/INTEL/OPENMPI/lib" -NETCDF_LIB="-lnetcdf -lnetcdff" -HDF5_INCDIR="-I/apps/GPP/HDF5/1.14.1-2/INTEL/OPENMPI/include" -HDF5_LIBDIR="-L/apps/GPP/HDF5/1.14.1-2/INTEL/OPENMPI/lib" -HDF5_LIB="-lhdf5_hl -lhdf5 -lhdf5 -lz" - diff --git a/xios_2311_src/bld.cfg b/xios_2311_src/bld.cfg deleted file mode 100644 index e575240500ac01eb3c1502cdd8356bd0d4eed2bb..0000000000000000000000000000000000000000 --- a/xios_2311_src/bld.cfg +++ /dev/null @@ -1,83 +0,0 @@ -# ----------------------- FCM extract configuration file ----------------------- -cfg::type bld -cfg::version 1.0 - - -# ------------------------------------------------------------------------------ -# Build information -# ------------------------------------------------------------------------------ - -# Specifying the build directory and src::blitz if necessary. -inc bld_dir.cfg - -%CFLAGS %BASE_CFLAGS %COMPIL_CFLAGS -%FFLAGS %BASE_FFLAGS %COMPIL_FFLAGS -%LD_FLAGS %ARCH_LD %BASE_LD - -bld::infile_ext::cpp C::SOURCE -bld::infile_ext::conf CPP::INCLUDE -bld::infile_ext::hpp CPP::INCLUDE - -# IMPORTANT: as the build directory may not necessarily coincide with the source directory, -# each source subfolder should be declared individually -search_src false -src::xios $PWD/src -src::xios::config $PWD/src/config -src::xios::date $PWD/src/date -src::xios::filter $PWD/src/filter -src::xios::functor $PWD/src/functor -src::xios::interface::c $PWD/src/interface/c -src::xios::interface::c_attr $PWD/src/interface/c_attr -src::xios::interface::fortran $PWD/src/interface/fortran -src::xios::interface::fortran_attr $PWD/src/interface/fortran_attr -src::xios::io $PWD/src/io -src::xios::node $PWD/src/node -src::xios::parse_expr $PWD/src/parse_expr -src::xios::test $PWD/src/test -src::xios::transformation $PWD/src/transformation -src::xios::transformation::Functions $PWD/src/transformation/Functions -src::xios::type $PWD/src/type - -src::netcdf $PWD/extern/netcdf4 -src::remap $PWD/extern/remap/src -bld::lib xios -bld::target libxios.a -#bld::target generate_fortran_interface.exe -#bld::target test_remap.exe -bld::target xios_server.exe -bld::target generic_testcase.exe -#bld::target test_regular.exe -#bld::target test_xios2_cmip6.exe -#bld::target test_new_features.exe test_unstruct_complete.exe -#bld::target test_remap.exe -#bld::target test_interpolate.exe -#bld::target test_complete.exe -#bld::target test_client.exe -#bld::target test_unstruct_complete.exe -#bld::target test_unstructured.exe -bld::exe_dep - -bld::tool::cc %CCOMPILER -bld::tool::fc %FCOMPILER -bld::tool::fpp %FPP -bld::tool::cpp %CPP -bld::tool::cppflags %CBASE_INC -I${PWD}/extern/src_netcdf -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I${PWD}/extern/blitz/include -bld::tool::fppflags %BASE_INC -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -bld::tool::ld %LINKER -bld::tool::ldflags %LD_FLAGS -bld::tool::cflags %CFLAGS %CBASE_INC -I${PWD}/extern/src_netcdf -I${PWD}/extern/boost/include -I${PWD}/extern/rapidxml/include -I${PWD}/extern/blitz/include -bld::tool::fflags %FFLAGS %FBASE_INC -bld::tool::cppkeys %CPP_KEY -bld::tool::fppkeys %CPP_KEY -bld::tool::make %MAKE - -# Pre-process code before analysing dependencies -bld::pp false -bld::pp::xios::interface::fortran true -bld::pp::xios::interface::fortran_attr true -bld::excl_dep use::mod_prism_get_comm -bld::excl_dep use::mod_prism_get_localcomm_proto -bld::excl_dep use::mod_prism_proto -bld::excl_dep use::mod_prism -bld::excl_dep use::netcdf -bld::excl_dep inc::mpif.h diff --git a/xios_2311_src/bld_dir.cfg b/xios_2311_src/bld_dir.cfg deleted file mode 100644 index f0362e81103ac9840af01e59b3917bd5bded4352..0000000000000000000000000000000000000000 --- a/xios_2311_src/bld_dir.cfg +++ /dev/null @@ -1,4 +0,0 @@ -inc /gpfs/scratch/bsc32/bsc032756/APPS/NEMO5_2024/xios_2311_src/new_mn5_gpp_intel/arch.fcm -inc /gpfs/scratch/bsc32/bsc032756/APPS/NEMO5_2024/xios_2311_src/new_mn5_gpp_intel/config.fcm -dir::root /gpfs/scratch/bsc32/bsc032756/APPS/NEMO5_2024/xios_2311_src/new_mn5_gpp_intel -src::blitz /gpfs/scratch/bsc32/bsc032756/APPS/NEMO5_2024/xios_2311_src/extern/blitz/src diff --git a/xios_2311_src/doc/XIOS_reference_guide.lyx b/xios_2311_src/doc/XIOS_reference_guide.lyx deleted file mode 100644 index cef5e0bb89c7d54cbc5d72e064f0b163f9757c16..0000000000000000000000000000000000000000 --- a/xios_2311_src/doc/XIOS_reference_guide.lyx +++ /dev/null @@ -1,11981 +0,0 @@ -#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 diff --git a/xios_2311_src/doc/XIOS_reference_guide.pdf b/xios_2311_src/doc/XIOS_reference_guide.pdf deleted file mode 100644 index 1ee9fca9318222a480cbb3abbf6c6f3e56aaf3a5..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/XIOS_reference_guide.pdf and /dev/null differ diff --git a/xios_2311_src/doc/XIOS_user_guide.lyx b/xios_2311_src/doc/XIOS_user_guide.lyx deleted file mode 100644 index da1cd38e0ab5c5d478fb3ff17ff9845062acec80..0000000000000000000000000000000000000000 --- a/xios_2311_src/doc/XIOS_user_guide.lyx +++ /dev/null @@ -1,5583 +0,0 @@ -#LyX 2.1 created this file. For more info see http://www.lyx.org/ -\lyxformat 474 -\begin_document -\begin_header -\textclass book -\begin_preamble -\usepackage{MnSymbol} -\end_preamble -\use_default_options true -\begin_modules -logicalmkup -\end_modules -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman default -\font_sans default -\font_typewriter default -\font_math auto -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\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 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\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 User Guide -\end_layout - -\begin_layout Author -Draft -\end_layout - -\begin_layout Chapter -Calendar -\end_layout - -\begin_layout Section -How to define a calendar -\end_layout - -\begin_layout Standard -XIOS has an embedded calendar module which needs to be configured before - you can run your simulation. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Only the calendar type and the time step used by your simulation are mandatory - to have a well defined calendar. - For example, a minimal calendar definition could be: -\end_layout - -\begin_layout Itemize -from the XML configuration file: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -from the Fortran interface: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context initialization ommited, see the corresponding section of this - user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test",ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_define_calendar(type="Gregorian", timestep=1.5*xios_hour) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The calendar type definition is done once and for all, either from the XML - configuration file or the Fortran interface, and cannot be modified. - However there is no such restriction regarding the time step which can - be defined at a different time than the calendar type and even redefined - multiple times. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -For example, it is possible to the achieve the same minimal configuration - as above by using both the XML configuration file: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -and the Fortran interface: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context initialization ommited, see the corresponding section of this - user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test",ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -! xios_define_calendar cannot be used here because the type was already - defined in the configuration file. -\end_layout - -\begin_layout Plain Layout - -! Ommiting the following line would lead to an error because the timestep - would be undefined. -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_timestep(timestep=1.5*xios_hour) -\end_layout - -\end_inset - -The calendar also has two optional date parameters: -\end_layout - -\begin_layout Itemize -the start date which corresponds to the beginning of the simulation -\end_layout - -\begin_layout Itemize -the time origin which corresponds to the origin of the time axis. -\end_layout - -\begin_layout Standard -If they are undefined, those parameters are set by default to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -0000-01-01 00:00:00 -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - If you are not interested in specific dates, you can ignore those parameters - completely. - However if you wish to set them, please note that they must not be set - before the calendar is defined. - Thus the following XML configuration file would be for example invalid: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -while the following configuration file would be valid: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -Of course, it is always possible to define or redefine those parameters - from the Fortran interface, directly when defining the calendar: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context initialization ommited, see the corresponding section of this - user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test",ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_define_calendar(type="Gregorian", time_origin=xios_date(1977, - 10, 19, 00, 00, 00), start_date=xios_date(2011, 11, 11, 13, 37, 42)) -\end_layout - -\end_inset - -or at a later time: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context initialization ommited, see the corresponding section of this - user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test",ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_define_calendar(type="Gregorian") -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_time_origin(time_origin=xios_date(1977, 10, 19, 00, 00, 00)) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_start_date(start_date=xios_date(2011, 11, 11, 13, 37, 42)) -\end_layout - -\end_inset - -To simplify the use of dates in the XML configuration files, it is possible - to partially define a date as long as the omitted parts are the rightmost. - In this case the remainder of the date is initialized as in the default - date. - For example, it would be valid to write: -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -start_date="1977-10-19" -\end_layout - -\end_inset - - instead of -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -start_date="1977-10-19 00:00:00" -\end_layout - -\end_inset - - or even -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -time_origin="1789" -\end_layout - -\end_inset - - instead of -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -time_origin="1789-01-01 00:00:00" -\end_layout - -\end_inset - -. - Similarly, it is possible to express a date with an optional duration offset - in the configuration file by using the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -date + duration -\end_layout - -\end_inset - - notation, with -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -date -\end_layout - -\end_inset - - potentially partially defined or even completely omitted. - Consequently the following examples are all valid in the XML configuration - file: -\end_layout - -\begin_layout Itemize -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -time_origin="2011-11-11 13:37:00 + 42s" -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -time_origin="2014 + 1y 2d" -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -start_date="+ 36h" -\end_layout - -\end_inset - -. -\end_layout - -\begin_layout Section -How to define a user defined calendar -\end_layout - -\begin_layout Standard -Predefined calendars might not be enough for your needs if you simulate - phenomenons on another planet than the Earth. - For this reason, XIOS can let you configure a completely user defined calendar - by setting the -\series bold -type -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -user_defined -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - In that case, the calendar type alone is not sufficient to define the calendar - and other parameters should be provided since the duration of a day or - a year are not known in advance. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Two approaches are possible depending on whether you want that your custom - calendar to have months or not: either use the -\series bold -month_lengths -\series default - attribute to define the duration of each months in days or use the -\series bold -year_length -\series default - attribute to define the duration of the year in seconds. - In both cases, you have to define -\series bold -day_length -\series default -, the duration of a day in seconds. - Those attributes have to be defined at the same time than the calendar - type, either from the XML configuration file or the Fortran interface, - for example: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -or -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context initialization ommited, see the corresponding section of this - user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test",ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_define_calendar(type="Gregorian", day_length=86400, year_length=315576 -00) -\end_layout - -\end_inset - -Note that if no months are defined, the format of the dates is modified - in the XML configuration file since the month must be omitted. - For example, -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -"2015-71 13:37:42" -\end_layout - -\end_inset - - would be the correct way to refer to the 71st day of the year 2015 at 13:37:42. - If you use the Fortran interface, the month cannot be omitted but you have - to make sure to always set it to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -1 -\end_layout - -\end_inset - - in that case. - For example, use -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_date(2015, 01, 71, 13, 37, 42) -\end_layout - -\end_inset - -for -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -"2015-71 13:37:42" -\end_layout - -\end_inset - -. - Moreover, it is possible that the duration of the day is greater than the - duration of the year on some planets. - In this case, it obviously not possible to define months so you have to - use the -\series bold -year_length -\series default - attribute. - Additionally the day must also be omitted from the dates in the configuration - file (for example -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -"2015 13:37:42" -\end_layout - -\end_inset - -) and must always be set to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -1 -\end_layout - -\end_inset - - when using the Fortran interface (for example -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_date(2015, 01, 01, 13, 37, 42) -\end_layout - -\end_inset - -). -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -If months have been defined, you might want to have leap years to correct - the drift between the calendar year and the astronomical year. - This can be achieved by using the -\series bold -leap_year_drift -\series default - and -\series bold -leap_year_month -\series default - attributes and optionally the -\series bold -leap_year_drift_offset -\series default - attribute. - The idea is to define -\series bold -leap_year_drift -\series default -, the yearly drift between the calendar year and the astronomical year as - a fraction of a day. - This yearly drift is summed each year to know the current drift and each - time the current drift is greater or equal to one day, the year is considered - a leap year. - In that case, an extra day is added to the month defined by -\series bold -leap_year_month -\series default - and one day is subtracted to the current drift. - The initial drift is null by default but it can be fixed by the -\series bold -leap_year_drift_offset -\series default - attribute. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The following configuration file defines a simplified Gregorian calendar - using the user calendar feature: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -As you know, the astronomical year on Earth is approximately a quarter of - day longer than the Gregorian calendar year so we have to define the yearly - drift as 0.25 day. - In case of a leap year, an extra day is added at the end of February which - is the second month of the year so -\series bold -leap_year_month -\series default - should be set to 2. - We start our time axis in 2012 which was a leap year in the Gregorian calendar. - This means there was previously three non-leap years in a row so the current - drift was (approximately) -\begin_inset Formula $3\times0.25$ -\end_inset - - days, hence -\series bold -leap_year_drift_offset -\series default - should be set to 0.75. - At the beginning of 2013, the drift would have been -\begin_inset Formula $0.75+0.25=1$ -\end_inset - - day so 2012 will be a leap year as expected. -\end_layout - -\begin_layout Section -How to use the calendar -\end_layout - -\begin_layout Standard -The calendar is created immediately after the calendar type has been defined - and thus can be used even before the context definition has been closed. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Once the calendar is created, you have to keep it updated so that it is - in sync with your simulation. - To do that, you have to call the -\series bold -xios_update_calendar -\series default - subroutine for each iteration of your code: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -INTEGER :: ts -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -DO ts=1,end -\end_layout - -\begin_layout Plain Layout - - CALL xios_update_calendar(ts) -\end_layout - -\begin_layout Plain Layout - - ! Do useful stuff -\end_layout - -\begin_layout Plain Layout - -ENDDO -\end_layout - -\end_inset - -The current date is updated to -\begin_inset Formula $start\_date+ts\times timestep$ -\end_inset - - after each call. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Many other calendar operations are available, including: -\end_layout - -\begin_layout Itemize -accessing various calendar related information like the time step, the time - origin, the start date, the duration of a day or a year, the current date, - etc. - -\end_layout - -\begin_layout Itemize -doing arithmetic and comparison operations on date: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -TYPE(xios_date) :: date1, date2 -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_duration) :: duration -\end_layout - -\begin_layout Plain Layout - -LOGICAL :: res -\end_layout - -\begin_layout Plain Layout - -! we suppose a calendar is defined -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_current_date(date1) -\end_layout - -\begin_layout Plain Layout - -duration = xios_duration(0, 0, 1, 0, 0, 0, 0, 0) + 12 * xios_hour -\end_layout - -\begin_layout Plain Layout - -date2 = date1 + duration + 0.5 * xios_hour -\end_layout - -\begin_layout Plain Layout - -res = date2 > date1 -\end_layout - -\begin_layout Plain Layout - -duration = date2 - date1 -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Itemize -converting dates to -\end_layout - -\begin_deeper -\begin_layout Itemize -the number of seconds since the time origin, the beginning of the year or - the beginning of the day, -\end_layout - -\begin_layout Itemize -the number of days since the beginning of the year, -\end_layout - -\begin_layout Itemize -the fraction of the day or the year. -\end_layout - -\end_deeper -\begin_layout Standard -For more detailed about the calendar attributes and operations, see the - XIOS reference guide. -\end_layout - -\begin_layout Chapter -Files -\end_layout - -\begin_layout Standard -Since files are central to an I/O server, the configuration of XIOS is built - around file objects. - Those objects correspond directly to files on the computer file system - which are either to be written or to be read. - Although, XIOS currently only supports the NetCDF format, XIOS files are - a generic abstraction. - Each file can contain one or more fields (each field being defined on a - grid) and optionally variables. - In the NetCDF nomenclature, fields defined in XIOS correspond to NetCDF - variables and XIOS variables are NetCDF attributes. - As fields, variables and grids are complex objects, they have their own - chapters and we will focus only on files in this section. -\end_layout - -\begin_layout Section -How to define your first file -\end_layout - -\begin_layout Standard -If you wish to input or to output data using XIOS, you will need to define - at least one file. - This can be done from both the XML configuration file and the Fortran interface. - Files are usually defined in the configuration file, although their definitions - are sometimes amended using the API. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -File objects are defined with the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - tag and should always be inside the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - section. - Only the output frequency is mandatory to have a well defined file but - it is generally a good idea to give it a name. - The following example shows a minimal configuration file which defines - one file. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -Note that the file extension could depend of the format so it is automatically - added to the chosen name by XIOS. - Since XIOS only support NetCDF formats for now, the extension is always - -\begin_inset Quotes eld -\end_inset - -.nc -\begin_inset Quotes erd -\end_inset - -. - If the name is not set, XIOS will use the id of the file object instead. - This id is generated automatically by XIOS if it was not set by the user. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The output frequency is particularly important since it defines the interval - of time between two consecutive outputs, that is in NetCDF nomenclature - the interval between two records. - In the example, the data would be written for every timestep (independently - of the timestep duration). - It is possible to use any duration as the output frequency but be careful - if you are not using a duration which is a multiple of the timestep duration - since XIOS might not be doing what you want. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The same configuration could be obtained from the Fortran interface as well: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_file) :: file_hdl -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_filegroup) :: filegroup_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context and calendar initializations ommited, see the corresponding section - of this user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test", ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_filegroup_handle("file_definition", filegroup_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_add_file(filegroup_hdl, file_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_attr(file_hdl, name="output", output_freq=xios_timestep) -\end_layout - -\end_inset - -Another important parameter for file is the -\series bold -mode -\series default - attribute which is set by default to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -write -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - You need to set it to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -read -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - if you want to use XIOS to handle inputs. - Note that in this case the -\series bold -output_freq -\series default - attribute must correspond to the output frequency used to create the input - file. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -When using the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -write -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode, it is possible to append the data to an existing file instead of - overwriting it by setting the -\series bold -append -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -true -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - In this case, you must be careful not to modify the structure of the file, - in particular no fields should be added, modified nor removed, or XIOS - will throw an error. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -If you wish to disable a file without having to remove its definition from - the configuration file, you can set the -\series bold -enabled -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -false -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. -\end_layout - -\begin_layout Section -How to use parallel I/O -\end_layout - -\begin_layout Standard -By default XIOS will create one file by server, each file being suffixed - with the rank of the server. - For example, if the sample configuration used in the previous section was - used with two servers, two files named -\begin_inset Quotes eld -\end_inset - -output_0.nc -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -output_1.nc -\begin_inset Quotes erd -\end_inset - - would be created. - Each file would contain only the portion of the fields affected to the - corresponding server. - This default mode can also be explicitly configured by setting the -\series bold -type -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -multiple_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Using the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -multiple_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode is often a reliable way to achieve good performances, particularly - if you only have a few servers. - However having multiple files also increases the complexity of the post-process -ing chains and it is often much easier to always get one file regardless - of how many servers are used. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -It is possible to achieve such behavior in XIOS by setting the -\series bold -type -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -one_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - This feature depends directly on the NetCDF library capabilities so you - need to make sure that XIOS was properly linked with a parallel version - of NetCDF. - If the library was not compiled with parallel input/output support, XIOS - will issue a warning and revert to the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -multiple_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode. -\end_layout - -\begin_layout Section -Supported NetCDF formats -\end_layout - -\begin_layout Standard -XIOS supports only the version 4 or later of NetCDF library. - It uses by default the new NetCDF-4 format which relies on HDF5 format - as a back-end. - This format can also be selected explicitly by setting the -\series bold -format -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -netcdf4 -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Alternatively, it also possible to force NetCDF-4 to use the classic NetCDF-3 - binary format by setting the -\series bold -format -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -netcdf4_classic -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - When using this older format, some features might be unavailable but current - version of XIOS should not be affected much. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Depending on the format, there are some specific requirements on how the - NetCDF library should have been compiled: -\end_layout - -\begin_layout Itemize -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -netcdf4 -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - format requires that HDF5 support has been enabled in NetCDF using the - configuration option -\begin_inset Flex Code -status open - -\begin_layout Plain Layout --\SpecialChar \nobreakdash- --enable-netcdf4 -\end_layout - -\end_inset - - and that the HDF5 library has been properly linked. -\end_layout - -\begin_layout Itemize -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -netcdf4 -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - format used in -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -one_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode requires that the HDF5 library has been compiled with parallel support - using the configuration option -\begin_inset Flex Code -status open - -\begin_layout Plain Layout --\SpecialChar \nobreakdash- --enable-parallel -\end_layout - -\end_inset - -. -\end_layout - -\begin_layout Itemize -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -netcdf4_classic -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - format used in -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -one_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode requires that Parallel NetCDF support has been enabled in NetCDF using - the configuration option -\begin_inset Flex Code -status open - -\begin_layout Plain Layout --\SpecialChar \nobreakdash- --enable-pnetcdf -\end_layout - -\end_inset - - and that the Parallel NetCDF library has been properly linked. -\end_layout - -\begin_layout Section -UGRID -\end_layout - -\begin_layout Standard -In addition to the CF conventions, it is also possible to output data using - -\begin_inset CommandInset href -LatexCommand href -name "UGRID" -target "https://ugrid-conventions.github.io/ugrid-conventions/" - -\end_inset - - metadata conventions developed for unstructured meshes. - It allows users to store the topology of an underlying unstructured mesh. - Currently XIOS supports 2D unstructured meshes of any shape (triangular, - quadrilateral, etc) and their mixture. - -\end_layout - -\begin_layout Standard -A 2D mesh can be described by a set of nodes, edges and/or faces. - XIOS allows one to define data on any of these three types of elements. - XIOS will generate a full list of connectivity attributes proposed by the - UGRID conventions. - For example in case of a mesh comprised of faces the following connectivity - parameters will be the calculated: -\end_layout - -\begin_layout Standard - -\family typewriter -edge_node_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -face_node_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -edge_nodes_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -face_nodes_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -face_edges_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -edge_face_connectivity -\end_layout - -\begin_layout Standard - -\family typewriter -face_face_connectivity -\end_layout - -\begin_layout Standard -In order to select UGRID output format, one has to set file attribute -\series bold -convention -\series default - to -\series bold -\shape italic -"UGRID" -\series default -\shape default - (its default value is -\series bold -\shape italic - -\begin_inset Quotes eld -\end_inset - -CF -\begin_inset Quotes erd -\end_inset - - -\series default -\shape default -). - Domain attribute -\series bold -nvertex -\series default - is mandatory for UGRID. - It servers for identifying one of three types of mesh elements on which - data can be defined: nodes (nvertex=1), edges (nvertex=2), and faces (nvertex -\begin_inset Formula $\geq$ -\end_inset - -3). - In order to write fields on the same mesh but on its different elements, - one has to assign the same domain name to each of the domains. - Example given below illustrates this point for three fields defined on - the same mesh but on its different elements: nodes, edges, and faces. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -How to use file splitting -\end_layout - -\begin_layout Standard -Output files can often be quite huge, particularly if the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -one_file -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - mode is used. - In this case, it can be interesting to periodically split the file in order - to have a few smaller files containing contiguous temporal portions of - the output data. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -This behavior can be achieved in XIOS by setting the -\series bold -split_freq -\series default - attribute to the duration you want, as illustrated in the following example: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -With this configuration, some data will be outputted every day and a new - file will be created every year. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note that the split frequency is the duration after which a new file will - be created, it does not mean that a new file will be created at the beginning - of each period. - For example, if you start your simulation the first of June 2014 and run - it for two years with a split frequency of one year: -\end_layout - -\begin_layout Itemize -you will get two files containing respectively the period from June 1st, - 2014 to May 31th, 2015 and from June 1st, 2015 to May 31th, 2016. -\end_layout - -\begin_layout Itemize -you will NOT get three files containing respectively the last six months - of 2014, the full year of 2015 and the first six months of 2016. -\end_layout - -\begin_layout Standard -XIOS automatically suffixes the file names with the start and end dates - when using file splitting. - By default, it will try to use the shortest date that still enables to - distinguish the files. - Thus in the above example, the files would be named -\begin_inset Quotes eld -\end_inset - -output_2014-2015.nc -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -output_2015-2016.nc -\begin_inset Quotes erd -\end_inset - -. - If you wish to force the date format used to prefix the files, you can - define the -\series bold -split_freq_format -\series default - attribute to override the default behavior. -\end_layout - -\begin_layout Section -A word about file synchronization -\end_layout - -\begin_layout Standard -File synchronization is usually not something you should worry about. - However, it is important to understand that data written by XIOS might - not be immediately written on the disk in practice. - Input/output libraries like NetCDF and HDF5 and parallel file systems generally - use complex caching policies for performance reasons. - This means that your data might still be stored in memory after it was - supposedly written. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -It might become critical to control this behavior for two main reasons: -\end_layout - -\begin_layout Itemize -if you want to mitigate the impact of a crash, as all buffered data would - be lost ; -\end_layout - -\begin_layout Itemize -if you want to be able to access the data from the output file immediately - after writing it. -\end_layout - -\begin_layout Standard -By default, XIOS will never force file synchronization but you can require - it to do so by setting the -\series bold -sync_freq -\series default - attribute to the wanted duration. - In this case, XIOS will regularly instruct NetCDF to synchronize the file - on disk by flushing its internal buffers. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note file synchronization must be used sparingly as it can have a disastrous - impact on performance. - Make sure to use a reasonably high synchronization frequency to avoid any - issue. -\end_layout - -\begin_layout Chapter -Fields and variables -\end_layout - -\begin_layout Standard -XIOS outsources the input/output definitions in its XML configuration file. - In the last chapter we presented some general points about file objects. - This chapter focuses on how to use fields and variables (that is variables - and attributes in NetCDF nomenclature) to populate files. -\begin_inset Newline newline -\end_inset - - -\end_layout - -\begin_layout Section -How to define your first field -\end_layout - -\begin_layout Standard -If you wish to input or to output data using XIOS, you will need to define - at least one file with one field. - This can be done from both the XML configuration file and the Fortran interface. - Fields are often defined in the configuration file, although their definitions - are sometimes amended using the API. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Field objects are defined with the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - tag and should always be inside a -\begin_inset Flex Code -status open - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - or a -\begin_inset Flex Code -status open - -\begin_layout Plain Layout - -\end_layout - -\end_inset - - section. - Only the grid and the operation attached to the field are mandatory to - have a well defined field but it is generally a good idea to give it an - identifier. - The following example shows a minimal configuration file which defines - one file with one field. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -It defines one file named -\begin_inset Quotes eld -\end_inset - - -\emph on -output -\emph default - -\begin_inset Quotes erd -\end_inset - - which contains one field -\begin_inset Quotes eld -\end_inset - - -\emph on -field_A -\emph default - -\begin_inset Quotes erd -\end_inset - - defined on a grid -\begin_inset Quotes eld -\end_inset - - -\emph on -grid_A -\emph default - -\begin_inset Quotes erd -\end_inset - -. - The file and the field are configured so that the data is written in the - file at every timestep (using the -\series bold -output_freq -\series default - file attribute) without any transformation (using the -\series bold -operation -\series default - field attribute set to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -instant -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -). -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The corresponding Fortran simulation loop could be: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -DO ts=1,numberOfTimestep -\end_layout - -\begin_layout Plain Layout - - ! Inform XIOS of the current timestep -\end_layout - -\begin_layout Plain Layout - - CALL xios_update_calendar(ts) -\end_layout - -\begin_layout Plain Layout - - ! Compute field_A for current timestep -\end_layout - -\begin_layout Plain Layout - - ! ... -\end_layout - -\begin_layout Plain Layout - - ! Output the data -\end_layout - -\begin_layout Plain Layout - - CALL xios_send_field("field_A", field_A) -\end_layout - -\begin_layout Plain Layout - -ENDDO -\end_layout - -\end_inset - -As you can see, the -\series bold -id -\series default - of the field is used in the model to select the field for which data is - being provided which makes this attribute extremely important. - Note that it must be unique for all fields even if they are defined in - different files. - By default, the -\series bold -id -\series default - of a field is also used as the name of the corresponding NetCDF variable. - It is however possible to override this default name using the field attribute - -\series bold -name -\series default -. - Two fields can share the same -\series bold -name -\series default - as long as they are not used in the same file. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The second argument of the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field -\end_layout - -\end_inset - - function is an array containing the data. - Its shape and content are not described here as they depend directly on - the grid. - For more information on the data layout, refer to the chapters focusing - on grids, domains and axis. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The same configuration could also be obtained using the Fortran interface: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_context) :: ctx_hdl -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_file) :: file_hdl -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_filegroup) :: filegroup_hdl -\end_layout - -\begin_layout Plain Layout - -TYPE(xios_field) :: field_hdl -\end_layout - -\begin_layout Plain Layout - -! ... -\end_layout - -\begin_layout Plain Layout - -! Context, calendar and grid initializations ommited, see the corresponding - section of this user manual and of the reference manual -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_handle("test", ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_current_context(ctx_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_get_filegroup_handle("file_definition", filegroup_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_add_file(filegroup_hdl, file_hdl) -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_attr(file_hdl, name="output", output_freq=xios_timestep) -\end_layout - -\begin_layout Plain Layout - -CALL xios_add_field(file_hdl, field_hdl, "field_A") -\end_layout - -\begin_layout Plain Layout - -CALL xios_set_attr(field_hdl, grid_ref="grid_A", operation="instant") -\end_layout - -\end_inset - -Note that if you want to define a field on a grid with only one domain and/or - one axis, it is possible to use the -\series bold -domain_ref -\series default - and -\series bold -axis_ref -\series default - attributes instead of the -\series bold -grid_ref -\series default - attribute. - A temporary grid will be created based on the domain and/or axis defined - this way. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -If you are using a grid with some masked points (see the relevant sections - of this manual), you must set the -\series bold -default_value -\series default - attribute to define the default value that will replace the missing values - in the output file. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -If you wish to disable a field without having to remove its definition from - the configuration file, you can set the -\series bold -enabled -\series default - attribute to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -false -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. -\end_layout - -\begin_layout Section -How to use temporal operations -\end_layout - -\begin_layout Standard -The last section showed a very basic example where the data was outputted - at every timestep using the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -instant -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - -\series bold -operation -\series default -. - However in many use cases, it might be more interesting to output only - the mean value on a certain period of time for example. - This section describes the use of temporal operations available in XIOS. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The field attribute -\series bold -operation -\series default - currently supports six modes: -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -instant -\series default -\emph default -: no temporal operation is applied which means the new data always overrides - the previous one even if it was not outputted, -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -average -\series default -\emph default -: compute and output the mean value, -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -accumulate -\series default -\emph default -: compute and output the sum, -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -minimum -\series default -\emph default -: compute and output the minimum value, -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -maximum -\series default -\emph default -: compute and output the maximum value, -\end_layout - -\begin_layout Itemize - -\series bold -\emph on -once -\series default -\emph default - : the data is written to the file only the first time it is received from - the model, any subsequent data is ignored. - The corresponding NetCDF variable does not have a time dimension. -\end_layout - -\begin_layout Standard -The output frequency of the file defined by the -\series bold -output_freq -\series default - attribute is used as the temporal operation period (except for the -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -once -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - - -\series bold -operation -\series default - for which there is no period). - This means it is for example not possible to output a daily average and - a weekly average in the same file. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -This updated example shows how to output the daily average instead of the - instant data for all timesteps: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -Compared to the previous example, only the file attribute -\series bold -output_freq -\series default - and the field attribute -\series bold -operation -\series default - have been modified. - Computing the weekly minimum instead of the daily average would be as simple - as using -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -output_freq="7d" -\end_layout - -\end_inset - -and -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -operation="minimum" -\end_layout - -\end_inset - -. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Note that if you use a temporal operation and have -\series bold -default_value -\series default - defined, it might be useful to set the attribute -\series bold - detect_missing_value -\series default - to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -true -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -. - This way temporal operations will not be applied when a default value is - detected. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -For example, we consider the values of a 2x2 domain for three timesteps: -\begin_inset Formula -\[ -\begin{bmatrix}3 & -1\\ -7 & 1 -\end{bmatrix},\qquad\begin{bmatrix}5 & 6\\ --1 & 2 -\end{bmatrix},\qquad\begin{bmatrix}-1 & 8\\ -3 & 4 -\end{bmatrix}. -\] - -\end_inset - -If we suppose that the field is configured to compute the average on three - timesteps, the resulting field would be: -\begin_inset Formula -\[ -\begin{bmatrix}\nicefrac{7}{3} & \nicefrac{13}{3}\\ -3 & \nicefrac{7}{3} -\end{bmatrix}. -\] - -\end_inset - -If -\series bold -default_value -\series default - is set to -\emph on - -\begin_inset Quotes eld -\end_inset - --1 -\begin_inset Quotes erd -\end_inset - - -\emph default - and -\series bold -detect_missing_value -\series default - is set to -\begin_inset Quotes eld -\end_inset - - -\series bold -\emph on -true -\series default -\emph default - -\begin_inset Quotes erd -\end_inset - -, the resulting field would be: -\begin_inset Formula -\[ -\begin{bmatrix}4 & 7\\ -5 & \nicefrac{7}{3} -\end{bmatrix}. -\] - -\end_inset - - -\end_layout - -\begin_layout Section -How to use a specific data sampling -\end_layout - -\begin_layout Standard -It is sometimes useful to have more control on the data sampling. - By default, the input data is used at every timestep but sometimes it is - not what you want. - The following examples illustrate such cases: -\end_layout - -\begin_layout Enumerate -the model is not computing updated values at the same frequency for all - fields (for example, a field is updated every two timesteps). -\end_layout - -\begin_layout Enumerate -you want to output a specific instant value in the interval between two - outputs. -\end_layout - -\begin_layout Enumerate -you want to compute an average without taking into account all instant values - in the interval between two outputs. -\end_layout - -\begin_layout Standard -Data sampling can be controlled in XIOS using the -\series bold -freq_op -\series default - (one timestep by default) and -\series bold -freq_offset -\series default - (null by default) attributes. - Those attributes define respectively how often data from the model must - be used and the amount of time before starting to use it. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -For following excerpts of configuration files show you to use those attributes - to handle the motivating examples. -\end_layout - -\begin_layout Enumerate -In this example, we suppose that we get two fields from the model: -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - - which is computed for each timestep and -\begin_inset Quotes eld -\end_inset - -field_B -\begin_inset Quotes erd -\end_inset - - which is only computed every two timesteps. - For both fields, we show how to compute and output the sum of all values - received during 6 timesteps: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Enumerate -In this example, we show how to output the 11th instant value every 12 timesteps -: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Enumerate -In this example, we suppose that the timestep is equal to one hour and that - the simulation starts at midnight. - We show how to compute the weekly average of the field value at midday: -\begin_inset Newline newline -\end_inset - - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -How to use field references -\end_layout - -\begin_layout Standard -It is quite common that different temporal operations must be applied to - the same instant data provided by the model. - In theory, the only solution to handle this scenario would be to define - a field for each operation, give them different -\series bold -id -\series default - and and call -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field -\end_layout - -\end_inset - - with the same array of data for each of those fields. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The following example illustrates this solution for a field for which we - want to compute the average, minimal and maximal values: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -To simplify the handling of such scenarios, XIOS has a -\begin_inset Quotes eld -\end_inset - -reference -\begin_inset Quotes erd -\end_inset - - feature which allows one field to inherit the attributes (except the -\series bold -id -\series default -) and the instant data of another field. - The above example can then be rewritten: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -With this configuration, only one call to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field( -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - -, field_A) -\end_layout - -\end_inset - - is needed. - Note how inherited attributes (like -\series bold -name -\series default - or -\series bold -operation -\series default - for example) are overwritten to obtain the desired configuration. - Additionally, be aware that it is the instant values which are inherited, - not the result of the operation on the field. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Similarly, it is sometimes useful to output the result of a temporal operation - on a field for different periods. - In this case, it does not really make sense to define the field that will - be then inherited in one file rather than another. - A solution is to make use of the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -field_definition -\end_layout - -\end_inset - - section so that it is clear that the field can be reused in any file. - This is illustrated in the following sample configuration file: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -How to use arithmetic operations -\end_layout - -\begin_layout Standard -Since XIOS aims to reduce as much as possible the need for post-processing, - it can apply some arithmetic operations on the data it handles (regardless - of its provenance). -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -All usual operators (+, -, *, /, ^, that is addition, subtraction, multiplicatio -n, division and exponentiation) and some common functions (like cos, sin, - tan, exp, log, log10, sqrt) are supported. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The following example shows how to use arithmetic operations: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - field_A + 273.15 -\end_layout - -\begin_layout Plain Layout - - log10(field_B) -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -With this configuration, only one call to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field( -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - -, field_A) -\end_layout - -\end_inset - - is needed. - In this example -\series bold -field_ref -\series default - is used only to inherit the attributes from -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - -, the instant values are not inherited since an expression has been given - for -\begin_inset Quotes eld -\end_inset - -field_B -\begin_inset Quotes erd -\end_inset - - and -\begin_inset Quotes eld -\end_inset - -field_C -\begin_inset Quotes erd -\end_inset - -. - Note that it is possible to use fields obtained from an expression in another - expression, thus the expression of -\begin_inset Quotes eld -\end_inset - -field_C -\begin_inset Quotes erd -\end_inset - - is equivalent to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -log10(field_A + 273.15) -\end_layout - -\end_inset - -. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The special keyword -\series bold -this -\series default - can be used in an expression to refer to the instant data received from - the model by the current field. - For example, the previous configuration file could be rewritten as follow: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - this - + 273.15 -\end_layout - -\begin_layout Plain Layout - - log10(field_B) -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -and the Fortran call would be replaced by -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field( -\begin_inset Quotes eld -\end_inset - -field_B -\begin_inset Quotes erd -\end_inset - -, field_B) -\end_layout - -\end_inset - -. -\end_layout - -\begin_layout Standard -XIOS also provides the means to define an expression in a Fortran code via - the field attribute -\begin_inset Quotes eld -\end_inset - -expr -\begin_inset Quotes erd -\end_inset - -. - The example above can rewritten as -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -while the two expressions can be specified with the following calls: -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_set_field_attr( -\begin_inset Quotes eld -\end_inset - -field_B -\begin_inset Quotes erd -\end_inset - -, expr= -\begin_inset Quotes erd -\end_inset - -@this + 273.15 -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\end_inset - - and -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_set_field_attr( -\begin_inset Quotes eld -\end_inset - -field_C -\begin_inset Quotes erd -\end_inset - -, expr= -\begin_inset Quotes erd -\end_inset - -log10(field_B) -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\end_inset - -. - -\end_layout - -\begin_layout Section -How to chain multiple temporal operations -\end_layout - -\begin_layout Standard -By default, all field names appearing in an expression refer to the instant - data of those fields. - To refer to the result of a temporal operation, the field name must be - prefixed with -\begin_inset Quotes eld -\end_inset - -@ -\begin_inset Quotes erd -\end_inset - -. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -This feature allows to chain multiple temporal operations as illustrated - bellow: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - @field_A -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -This example shows how to compute the minimum on 7 days of the daily average - of -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - -. - In this context, the -\series bold -freq_op -\series default - attribute defines the period of the temporal operation for all fields pointed - with the -\begin_inset Quotes eld -\end_inset - -@ -\begin_inset Quotes erd -\end_inset - - operator in the expression. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Another use of this feature is to do arithmetic operations on the result - of temporal operations. - The following configuration file for example shows how to output the standard - deviation for a field on a one day period: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - field_A * field_A -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - sqrt(@field_A_square - @field_A^2) -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -Note that since an -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -instant -\begin_inset Quotes erd -\end_inset - - -\series default - -\emph default -operation is used, -\series bold -freq_op -\series default - and -\series bold -output_freq -\series default - are identical in this scenario. -\end_layout - -\begin_layout Section -How to access the data of a field -\end_layout - -\begin_layout Standard -In order not to waste memory, the instant data of a field can be read from - the model only if: -\end_layout - -\begin_layout Itemize -it is part of a file whose attribute -\series bold -mode -\series default - is -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -read -\begin_inset Quotes erd -\end_inset - - -\end_layout - -\begin_layout Itemize -or its attribute -\series bold -read_access -\series default - is set to -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -true -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default -. -\end_layout - -\begin_layout Standard -In any other case, trying to access the field data would cause an error. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The following configuration file: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -can be used with this Fortran code: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=Fortran,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -DO ts=1,numberOfTimestep -\end_layout - -\begin_layout Plain Layout - - ! Get field_A for current timestep -\end_layout - -\begin_layout Plain Layout - - CALL xios_recv_field("field_A", field_A) ! field_A must be an allocated - array with the right size -\end_layout - -\begin_layout Plain Layout - - ! Do useful things... -\end_layout - -\begin_layout Plain Layout - - ! Inform XIOS of the current timestep -\end_layout - -\begin_layout Plain Layout - - CALL xios_update_calendar(ts) -\end_layout - -\begin_layout Plain Layout - -ENDDO -\end_layout - -\end_inset - -The call to -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_recv_field -\end_layout - -\end_inset - - might block for a while if the data was not yet received from the server(s) - but it should not happen too often thanks to the prefetching done by XIOS. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -Since the -\series bold -read_access -\series default - attribute allows to the access fields which depend directly on data from - the model, you must be very careful with the order of the -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field -\end_layout - -\end_inset - - and -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_recv_field -\end_layout - -\end_inset - - calls. - For example, consider the following configuration file (just a simple example - as in practice it does not make much sense to use it): -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - field_A / 42 -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -If you call -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_recv_field( -\begin_inset Quotes eld -\end_inset - -field_B -\begin_inset Quotes erd -\end_inset - -, field_B) -\end_layout - -\end_inset - - before -\begin_inset Flex Code -status open - -\begin_layout Plain Layout -xios_send_field( -\begin_inset Quotes eld -\end_inset - -field_A -\begin_inset Quotes erd -\end_inset - -, field_A) -\end_layout - -\end_inset - -, the requested data will never be available and a deadlock could occur. - In practice, XIOS will detect the problem and throw an error. -\end_layout - -\begin_layout Section -How to reduce the size of an output file -\end_layout - -\begin_layout Standard -The size of the output files can sometimes become a problem. - XIOS provides some features which may help to reduce the size of the output - files losslessly. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The first solution is to use the compression feature provided by HDF5 which - allows a field to be compressed using gzip. - Since it depends directly on HDF5, this feature works only when the NetCDF-4 - format is used. - Since HDF5 does not (yet) support compression for parallel output, one - has to use two server-level functionality (see Sec. - -\begin_inset CommandInset ref -LatexCommand ref -reference "sec:Launching-secondary-server" - -\end_inset - -) or to engage the -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -multiple_file -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default - mode. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -To enable the gzip compression of a field, you need to set the -\series bold -compression_level -\series default - attribute to any integer between 1 and 9 (by default this attribute is - set to 0 which means that compression is disabled). - Using an higher compression level should improve the compression ratio - at the cost of using more processing power. - Generally using a compression level of 2 should be a good trade-off. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The following example illustrates the use of the gzip compression: -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - -Note that the -\series bold -compression_level -\series default - attribute can also be set at a file level, in this case it is inherited - by all fields of the file unless they explicitly override the attribute. -\begin_inset Newline newline -\end_inset - - -\begin_inset Newline newline -\end_inset - -The second solution is available only if you are using a grid with masked - values. - In this case, you can choose to output the indexed grid instead of the - full grid by setting the -\series bold -indexed_output -\series default - attribute to -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -true -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default -. - Missing values are then omitted and extra arrays are outputted so that - the translation from the -\begin_inset Quotes eld -\end_inset - -compressed -\begin_inset Quotes erd -\end_inset - - indexes to the true indexes can be done. - Due to those arrays of indexes, indexed output should be considered only - if there is enough masked values. - For more details about this feature, please refer to section 8.2 -\begin_inset Quotes eld -\end_inset - -Compression by Gathering -\begin_inset Quotes erd -\end_inset - - of the Climate and Forecast (CF) Convention. -\end_layout - -\begin_layout Standard -\begin_inset CommandInset include -LatexCommand include -filename "inputs/user/Grid.lyx" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset CommandInset include -LatexCommand include -filename "inputs/user/Domain.lyx" - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset CommandInset include -LatexCommand include -filename "inputs/user/Axis.lyx" - -\end_inset - - -\end_layout - -\begin_layout Chapter -XIOS parameterization -\end_layout - -\begin_layout Standard -Some of XIOS behaviors can be configured using options. - Those options must be exprhessed as variables in a specific context whose - -\series bold -id -\series default - must be -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -xios -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default - as shown below. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "breaklines=true,frame=tb,language=XML,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}},tabsize=2" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - option_value -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Section -Launching secondary server -\begin_inset CommandInset label -LatexCommand label -name "sec:Launching-secondary-server" - -\end_inset - - -\end_layout - -\begin_layout Standard -To improve I/O performance, it is possible to separate servers into two - levels: intermediaries (level one) and writers (level two). - Level-one servers will receive data from clients and will redistribute - and send the data to subsets of level-two servers (called “poolsâ€), whilst - level-two servers will do the I/O. - Each file is written by only one pool. - If one process is assigned per pool (which is the default option), the - I/O is sequential and HDF5 compression can be used even in the “multiple_file†- mode. - Level-two servers can be launched and controlled by means of three parameters: -\end_layout - -\begin_layout Itemize - -\series bold -using_server2 -\series default - (type: -\series bold -bool -\series default -) activates the secondary server -\end_layout - -\begin_layout Itemize - -\series bold -ratio_server2 -\series default - (type: -\series bold -int -\series default -) defines the percentage of servers that will be dedicated to level two. - The parameter can take value from 0 to 100 with the default value of 50%. - In case if the requested number of level-two servers is not valid (for - example, zero or equal to the total number of servers), XIOS will run in - its classical server mode with one server level. -\end_layout - -\begin_layout Itemize - -\series bold -number_pools_server2 -\series default -(type: -\series bold -int -\series default -) sets the number of server-two pools (i.e. - MPI communicators on level two). - By default the number of pools is equal to the number of level-two servers, - thus permitting one process per communicator. -\end_layout - -\begin_layout Standard -Shown in Fig. - -\begin_inset CommandInset ref -LatexCommand ref -reference "Fig:server2" - -\end_inset - - is the two-level server structure for the following definitions: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "breaklines=true,frame=tb,language=XML,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}},tabsize=2" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -... - -\end_layout - -\begin_layout Plain Layout - - true -\end_layout - -\begin_layout Plain Layout - - 75 -\end_layout - -\begin_layout Plain Layout - - 3 -\end_layout - -\begin_layout Plain Layout - -... -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement H -wide false -sideways false -status open - -\begin_layout Plain Layout -\begin_inset Graphics - filename inputs/images/Server2.pdf - -\end_inset - - -\end_layout - -\begin_layout Plain Layout -\begin_inset Caption Standard - -\begin_layout Plain Layout -Two levels of servers for the total number of servers of 8 and ratio_server2=75%. - The number of level-two servers is -\begin_inset Formula $8\times\text{ratio\_server2}=6$ -\end_inset - - and, thus, the remaining 2 servers are of level one. - -\end_layout - -\end_inset - - -\begin_inset CommandInset label -LatexCommand label -name "Fig:server2" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -By default file distribution among server-two pools is optimized for bandwidth. - An alternative way of distributing files is possible in order to minimize - memory consumption by level-two servers. - For this, two additional parameters should be specified: -\end_layout - -\begin_layout Itemize - -\series bold -server2_dist_file_memory -\series default - (type: -\series bold -bool -\series default -) activates memory optimization. -\end_layout - -\begin_layout Itemize - -\series bold -server2_dist_file_memory_ratio -\series default - (type: -\series bold -double -\series default -) (optional) takes value from 0 (memory optimization) to 1 (bandwidth optimizati -on). - The default value is 0.5. -\end_layout - -\begin_layout Section -Buffer related options -\end_layout - -\begin_layout Standard -By default, XIOS tries to guess the required buffers sizes to ensure efficient - client-server communications. - However it might sometimes be useful to tweak the buffers sizes so XIOS - provides the following options: -\end_layout - -\begin_layout Itemize - -\series bold -optimal_buffer_size -\series default - (type: -\series bold -string -\series default -) can be either -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -memory -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default - or -\series bold -\emph on - -\begin_inset Quotes erd -\end_inset - -performance -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default -. - When using the -\series bold -\emph on - -\begin_inset Quotes eld -\end_inset - -memory -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default - mode, XIOS will try to use buffers as small as possible while still ensuring - that the bigger message will fit. - When using the -\series bold -\emph on - -\begin_inset Quotes erd -\end_inset - -performance -\begin_inset Quotes erd -\end_inset - - -\series default -\emph default - mode, XIOS will ensure that all active fields can be buffered without having - to flush the buffers. - This mode is used by default since it allows more asynchronism and thus - better performance at the cost of being quite memory hungry. -\end_layout - -\begin_layout Itemize - -\series bold -minimum_buffer_size -\series default - (type: -\series bold -int -\series default -) defines the minimum buffer size in bytes (8192 by default). - This value will be used by XIOS only for buffers whose detected size is - smaller than the user defined minimum size. -\end_layout - -\begin_layout Itemize - -\series bold -buffer_size_factor -\series default -(type: -\series bold -int -\series default -) allows to modify the buffers sizes by multiplying the detected sizes by - an user defined factor ( -\begin_inset Formula $1.0$ -\end_inset - - by default). - For each allocated buffers, the used size is defined as -\begin_inset Formula -\[ -{\scriptstyle used\_size\;=\;\min\left(minimum\_buffer\_size,\;detected\_size\;\times\;buffer\_size\_factor\right)} -\] - -\end_inset - - -\end_layout - -\end_body -\end_document diff --git a/xios_2311_src/doc/XIOS_user_guide.pdf b/xios_2311_src/doc/XIOS_user_guide.pdf deleted file mode 100644 index 485593e294d7e2228c4b4ef20fa22244b5887225..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/XIOS_user_guide.pdf and /dev/null differ diff --git a/xios_2311_src/doc/inputs/images/Distributed_Axis.pdf b/xios_2311_src/doc/inputs/images/Distributed_Axis.pdf deleted file mode 100644 index de2b96f80a9af9ada7927f544d7c3d9f8fed43f5..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/inputs/images/Distributed_Axis.pdf and /dev/null differ diff --git a/xios_2311_src/doc/inputs/images/Distributed_Domain.pdf b/xios_2311_src/doc/inputs/images/Distributed_Domain.pdf deleted file mode 100644 index 774e2f5cb7c534ffaf269b92fcc39ad526b2775b..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/inputs/images/Distributed_Domain.pdf and /dev/null differ diff --git a/xios_2311_src/doc/inputs/images/Domain.pdf b/xios_2311_src/doc/inputs/images/Domain.pdf deleted file mode 100644 index 88011c914a1f3a284974a289f9943b60e168ebb5..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/inputs/images/Domain.pdf and /dev/null differ diff --git a/xios_2311_src/doc/inputs/images/Server2.pdf b/xios_2311_src/doc/inputs/images/Server2.pdf deleted file mode 100644 index 228a2377cd7ed1dc9ee25c8bdc03c664d5ce1002..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/inputs/images/Server2.pdf and /dev/null differ diff --git a/xios_2311_src/doc/inputs/user/Axis.lyx b/xios_2311_src/doc/inputs/user/Axis.lyx deleted file mode 100644 index 9b6328a5b208d7a5d711c0f4f26b0168723fcc63..0000000000000000000000000000000000000000 --- a/xios_2311_src/doc/inputs/user/Axis.lyx +++ /dev/null @@ -1,715 +0,0 @@ -#LyX 2.1 created this file. For more info see http://www.lyx.org/ -\lyxformat 474 -\begin_document -\begin_header -\textclass book -\use_default_options true -\master ../../XIOS_user_guide.lyx -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman default -\font_sans default -\font_typewriter default -\font_math auto -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\float_placement !tph -\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 1 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\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 Chapter -Axis -\end_layout - -\begin_layout Standard -Like Domain, Axis is a sub-component of Grid but is one dimension. - In meteorological applications, axis represents a vertical line with different - levels. -\end_layout - -\begin_layout Section -Working with configuration file -\end_layout - -\begin_layout Standard -The way to define an axis with configuration file is similar to define a - domain. -\end_layout - -\begin_layout Subsection -Basic configuration -\end_layout - -\begin_layout Standard -Similar to domain, an axis is defined inside its definition part with the - tag -\series bold -\color black -axis_definition -\series default -\color inherit -. - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The first one is to specify explicitly identification of an axis with an - id. - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -In this way, with id, the axis can be processed, e.x modified its attributes, - with Fortran interface; besides, it is only possible to reference to a - axis whose id is explicitly defined. -\end_layout - -\begin_layout Standard -To make a reference to an axis, we use axis_ref -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -An axis defined by axis_ref will inherit all attributes of the referenced - one, except its id attribute. - If there is no id specified, an implicit one is assigned to this new axis. - The axis with implicit id can only be used inside the scope where it is - defined, it can not be referenced, nor be processed. - It is rare to define an axis without id inside axis_definition. - -\end_layout - -\begin_layout Standard -To define a new axis inside a grid, we use the tag -\series bold -\color black -axis. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The xml lines above can be translated as: the grid_A composed of an axis_A - that is defined somewhere else before. - More precisely, the grid grid_A is constituted of a -\begin_inset Quotes eld -\end_inset - -unknown id -\begin_inset Quotes erd -\end_inset - - axis which has inherited all attributes (and their values) from axis A - (name, long name, i_index, j_index, ... - etc). -\end_layout - -\begin_layout Subsection -Advanced configuration -\end_layout - -\begin_layout Standard -Like domain, there are several transformation which can be defined with - configuration file. - All transformations on an axis have form *_axis. - -\end_layout - -\begin_layout Standard -Till now, XIOS supports the following transformation on axis: -\end_layout - -\begin_layout Itemize -zoom_axis: Like zoom functionality in XIOS 1.0, the destination grid is the - zoomed region of the source grid. -\end_layout - -\begin_layout Itemize -interpolation_axis: Implement interpolation from an axis to one another. - For now, only polynominal interpolation is available. -\end_layout - -\begin_layout Itemize -inverse_axis: Inverse an axis -\end_layout - -\begin_layout Standard -It is not difficult to define a transformation: Include type of transformation - inside axis definition, as the following -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The concrete example is translated as: the axis named axis_A_zoom is transformed - from axis name axis_A with a zoom activity. - The detailed attributes of zoom_axis can be found in reference document, - but simply it contains the begining and size of zoomed region. -\end_layout - -\begin_layout Standard -One remark is the transformed axis SHOULD have an id, in this case, it's - axis_A_zoom. - As mentioned before, a no-id axis or any no-id component of XIOS can only - be used inside its definition scope. -\end_layout - -\begin_layout Standard -To make use of transformation, the grid must contain axis which references - to transformed ones. - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -On defining this way, we tell XIOS to establish a connection between two - grids by a transformation (zoom) with: grid source - grid_A, grid destination - - grid_A_zoom. -\end_layout - -\begin_layout Standard -As mentioned in Grid Chapter, in order to use transformed grid, just reference - to it in field_definition -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Although xml is helpful to define several configurations, it can not be - used to customize attributes of axis. - So it's the turn of Fortran interface. -\end_layout - -\begin_layout Section -Working with FORTRAN code -\end_layout - -\begin_layout Standard -Although axis is not as complexe as domain, there are some mandatory attributes - to define. - Different from precedent version, XIOS 2.0 supports distribution of data - on a axis. - The followings describe the essential parts of axis. - Details of its attributes and operations can be found in XIOS reference - guide. -\end_layout - -\begin_layout Subsection -Local axis index -\end_layout - -\begin_layout Standard -Axis is often used with domain, which is broken into several distributed - pieces, to make a 3 dimension grid. - However, there are cases in which data on axis are distributed among processes. - Following we consider a simple case: a axis with global size 9 and its - data are distributed evenly among 3 client processes, each of which has - size 3. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement !tbph -wide false -sideways false -status open - -\begin_layout Plain Layout -\begin_inset Graphics - filename ../images/Distributed_Axis.pdf - lyxscale 50 - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Plain Layout -\begin_inset Caption Standard - -\begin_layout Plain Layout -Global axis data -\end_layout - -\end_inset - - -\begin_inset CommandInset label -LatexCommand label -name "globalAxis" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The local axis can be described by the following way. -\end_layout - -\begin_layout Standard -Specify the the beginning and size of local axis with: -\end_layout - -\begin_layout Itemize -n_glo: global size of axis. - -\end_layout - -\begin_layout Itemize -begin: global position where a local axis begin -\end_layout - -\begin_layout Itemize -n: local size of axis on each process -\end_layout - -\begin_layout Standard -For example, the local axis in the middle (the yellow one) can be specified - with: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_axis_attr("axis_A",n_glo=9, begin=3, n=3) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Subsection -Local axis data -\end_layout - -\begin_layout Standard -Simpler than local domain data, data on axis is always on-dimension. - Like local domain data, local axis data represent the data offset from - local axis, and it can be defined in two ways. -\end_layout - -\begin_layout Standard -Specify the begining and size of data on the local axis: -\end_layout - -\begin_layout Itemize -data_begin: the local position of data on axis where data begins -\end_layout - -\begin_layout Itemize -data_n: size of data on each local axis -\end_layout - -\begin_layout Standard -Or specify data with its position in the local axis: -\end_layout - -\begin_layout Itemize -data_index: array of local position of data in the local axis. -\end_layout - -\begin_layout Standard -Although the valid data must be inside a local axis, it is not neccessary - for data to have same size. - In fact, data can have larger size than local axis. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_axis_attr("axis_A", data_begin=-1, data_n=n+2) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -For local axis_A, the negative value of data_begin indicates that data is - larger than local axis, the valid part of data needs extracted from the - real data. - If data_begin has a positive value, that means data size is smaller than - local axis. - The default value of data_begin is 0, which implies that local data fit - into local axis properly. - -\end_layout - -\begin_layout Standard -Loal data can be defined with: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_axis_attr("axis_A",data_index=data) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout Itemize -data = {-1,0,1,2,3} -\end_layout - -\begin_layout Subsection -Value -\end_layout - -\begin_layout Standard -Value of axis plays a same role as longitude and latitude of domain. - As local data, it can be distributed among processes. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_axis_attr("axis_A", value=valueAxis) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout Itemize -valueAxis = {30, 40, 50} -\end_layout - -\begin_layout Standard -Because there is a need of direction of an axis, then comes the attribute - positive -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_axis_attr("axis_A", positive='up') -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -All attributes of axis can be found in Reference Guide. -\end_layout - -\begin_layout Standard - -\end_layout - -\end_body -\end_document diff --git a/xios_2311_src/doc/inputs/user/Domain.lyx b/xios_2311_src/doc/inputs/user/Domain.lyx deleted file mode 100644 index 7c72e90919c7e9813e4f5af4fabbc0e88c4a456e..0000000000000000000000000000000000000000 --- a/xios_2311_src/doc/inputs/user/Domain.lyx +++ /dev/null @@ -1,1048 +0,0 @@ -#LyX 2.1 created this file. For more info see http://www.lyx.org/ -\lyxformat 474 -\begin_document -\begin_header -\textclass book -\use_default_options true -\master ../../XIOS_user_guide.lyx -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman default -\font_sans default -\font_typewriter default -\font_math auto -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\float_placement !tph -\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 1 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\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 Chapter -Domain -\end_layout - -\begin_layout Standard -Domain is a two dimensional coordinates, which can be considered to be composed - of two axis: y-axis and x-axis. - However, different from two axis composed mechanically, a domain contains - more typical information which play an important role in specific cases. - Very often, in meteorological applications, domain represents a surface - with latitude and longitude. -\end_layout - -\begin_layout Section -Working with configuration file -\end_layout - -\begin_layout Subsection -Basic configuration -\end_layout - -\begin_layout Standard -Similar to Grid as well as other components in XIOS, a domain is defined - inside its definition part with the tag -\series bold -\color black -domain_definition -\series default -\color inherit -. - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The first one is to specify explicitly identification of a domain with an - id. - One repetition, id of any component in XIOS are -\shape italic -\color black -unique -\shape default -\color inherit - among this kind of components. - It is not allowed to have two domains with a same id, but it is permitted - a domain and a grid, for example, to share a same one. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -In this way, with id, the domain can be processed, e.x modified its attributes, - with Fortran interface; besides, it is only possible to reference to a - domain whose id is explicitly defined. -\end_layout - -\begin_layout Standard -Very often, after a domain is defined, it may be referenced many times. - To make a reference to a domain, we use domain_ref -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -A domain defined by domain_ref will inherit all attributes of the referenced - one, except its id attribute. - If there is no id specified, an implicit one is assigned to this new domain. - The domain with implicit id can only be used inside the scope where it - is defined, it can not be referenced, nor be processed. - It is rare to define a domain without id inside domain_definition. - However, the domain_ref is utilized widely outside the scope of domain_definiti -on. -\end_layout - -\begin_layout Standard -Because a domain is a sub component of grid, it is possible to define a - new domain inside a grid with the tag -\series bold -\color black -domain. - -\series default -\color inherit -Moreover it is the only region where we can define a new domain outside - domain_definition. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The xml lines above can be translated as: the grid_A composed of a domain_A - that is defined somewhere else before. - More precisely, the grid grid_A is constituted of a -\begin_inset Quotes eld -\end_inset - -unknown id -\begin_inset Quotes erd -\end_inset - - domain which has inherited all attributes (and their values) from domain - A (name, long name, i_index, j_index, ... - etc). -\end_layout - -\begin_layout Standard -With this approach, we only define a domain once but reuse it as many time - as we like in different configurations. -\end_layout - -\begin_layout Subsection -Advanced configuration -\end_layout - -\begin_layout Standard -One of a new concept which differenciates XIOS 2.0 from its precedent is - transformation. - In a simple case, zoom feature is now considered to be a transformation. - It can be more complicated for other geometric transformation such as inversion - or interpolation. - All transformation are taken place on grid level. - It means that it is neccessary to define a grid source and a grid destination - as well as a transformation or list of transformation which we'd like to - have. - In order to transform a grid to one another, we need to specify a transformatio -n on its sub-component: domain or axis. -\end_layout - -\begin_layout Standard -Because transformation on a domain is different from one on an axis, we - differenciate two categories of transformation: transformation_domain and - transformation_axis. -\end_layout - -\begin_layout Standard -Till now, XIOS supports the following transformation on domain: -\end_layout - -\begin_layout Itemize -zoom_domain: Like zoom functionality in XIOS 1.0, the destination grid is - the zoomed region of the source grid. -\end_layout - -\begin_layout Itemize -interpolation_domain: Implement interpolation from a domain to one another, - for now XIOS can only do interpolation by reading calculated weight values - from a file or calculate the weights on the fly. -\end_layout - -\begin_layout Itemize -generate_rectilinear_domain: auto generating, distributing a rectilinear - domain then filling all mandatory attributes. -\end_layout - -\begin_layout Standard -It is not difficult to define a transformation: Include type of transformation - inside domain definition, as the following -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The concrete example above tells many things: a domain named domain_A_zoom - is transformed from domain name domain_A with a zoom activity. - The domain_A_zoom is the zoomed region of domain_A. - The detailed attributes of zoom_domain can be found in reference document, - but simply it contains the begining and size of zoomed region. -\end_layout - -\begin_layout Standard -One remark is the transformed domain SHOULD have an id, in this case, it's - domain_A_zoom. - As mentioned before, a no-id domain or any no-id component of XIOS can - only be used inside its definition scope. - It exists but is useless. - So care about that. -\end_layout - -\begin_layout Standard -To make use of transformation, the grid must contain domains which reference - to transformed ones. - -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -On defining this way, we tell XIOS to establish a connection between two - grids by a transformation (zoom) with: grid source - grid_A, grid destination - - grid_A_zoom. -\end_layout - -\begin_layout Standard -As mentioned in Grid Chapter, in order to use transformed grid, just reference - to it in field_definition -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Although xml is helpful to define several configurations, it is not convenient - to customize attributes of domain. - So it's the turn of Fortran interface. -\end_layout - -\begin_layout Section -Working with FORTRAN code -\end_layout - -\begin_layout Standard -One of the important concepts to grasp in mind in using FORTRAN interface - is the data distribution. - With a distributed-memory XIOS, data are broken into disjoint blocks, one - per client process. - In the next sections, local describes everything related to a client process, - whereas global means global data. - The followings describe the essential parts of domain. - Details of its attributes and operations can be found in XIOS reference - guide -\end_layout - -\begin_layout Subsection -Domain type -\end_layout - -\begin_layout Standard -Domain is a two dimensional coordinates, which can be considered to be composed - of two axis: y-axis and x-axis. - However, different from two axis composed mechanically, a domain contains - more typical information which play an important role in specific cases. - Very often, in meteorological applications, domain represents a surface - with latitude and longitude. - Because these properties change from one domain type to another, it is - recommended to use domain in case of representing a surface. -\end_layout - -\begin_layout Standard -In XIOS, a domain can be represented by one of three different types of - coordinate system which also differentiate the way to represent latitude - and longitude correspondingly. - -\end_layout - -\begin_layout Itemize -rectilinear: a simple 2-dimensional Cartesian coordinates with two perpendicular - axes. - Latitude represents the y-axe while longitude represents the x-axe. -\end_layout - -\begin_layout Itemize -curvilinear: a 2-dimensional coordinates allows the generality of two axes - not perpendicular to each other. - Latitude and longitude have the size equivalent to size of local domain. - -\end_layout - -\begin_layout Itemize -unstructured: not any of two above, the latitutude and longitude, as curvilinear -, are reprensented with the help of boundaries. - -\end_layout - -\begin_layout Standard -Different from XIOS 1.0, in this new version, users must explicitly specify - the type of domain which they would like to use -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",type='rectilinear') -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -Althoug there are different domain types, they share the similar patterns - to settle local data on a client process: There are some essential attributes - to define. - The next sections describe their meanings and how to specify correctly - data for a local domain. -\end_layout - -\begin_layout Subsection -Local domain index -\end_layout - -\begin_layout Standard -It is not uncommon that a global domain is broken into several pieces, each - of which is distributed to one process. - Following we consider a simple case: a domain of rectilinear type with - global size 9 x 9 and its data is distributed evenly among 9 client processes, - each of which has 3x3. -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement !tbph -wide false -sideways false -status open - -\begin_layout Plain Layout -\begin_inset Graphics - filename ../images/Distributed_Domain.pdf - lyxscale 50 - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Plain Layout -\begin_inset Caption Standard - -\begin_layout Plain Layout -Global domain data -\end_layout - -\end_inset - - -\begin_inset CommandInset label -LatexCommand label -name "globalDomain" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The region of local domain can be described by one of the following way. -\end_layout - -\begin_layout Standard -Specify the the beginning and size of local domain with: -\end_layout - -\begin_layout Itemize -ni_glo, nj_glo: global size of x-axis and y-axis correspondingly. - -\end_layout - -\begin_layout Itemize -ibegin, jbegin: global position on x-axis and y-axis where a local domain - begin -\end_layout - -\begin_layout Itemize -ni, nj: local size of domain of each process on x-axis and y-axis -\end_layout - -\begin_layout Standard -Or tell XIOS exactly the global position of each point in the local domain, - from left to right, top to bottom with: -\end_layout - -\begin_layout Itemize -i_index, j_index: array of global position of every point in the local domain. - It is very useful when local domains do not align with each other. -\end_layout - -\begin_layout Standard -For example, with the first method, the local domain in the middle (the - blue one) can be specified with: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",ni_glo=9, nj_glo=9, ibegin=3, ni=3, - jbegin=3, nj=3) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The second method demands only two arrays: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",ni_glo=9, nj_glo=9, i_index=iIndex, - j_index=jIndex) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -and -\end_layout - -\begin_layout Itemize -iIndex={3,4,5,3,4,5,3,4,5}, jIndex = {3,3,3,4,4,4,5,5,5} -\end_layout - -\begin_layout Subsection -Local domain data -\end_layout - -\begin_layout Standard -Similar to define local index, local data can be done in two ways. -\end_layout - -\begin_layout Standard -Specify the begining and size of data on the local domain: -\end_layout - -\begin_layout Itemize -data_ibegin, data_jbegin: the local position of data on x-axis and y-axis - where data begins -\end_layout - -\begin_layout Itemize -data_ni, data_nj: size of data on each axis -\end_layout - -\begin_layout Standard -Or specify data with its position in the local domain, from left to right, - top to bottom with -\end_layout - -\begin_layout Itemize -data_i_index, data_j_index: array of local position of data in the local - domain. -\end_layout - -\begin_layout Standard -Beside the attributes above, one of the essential attributes to define is - dimensional size of data - data_dim. - Although domain has two dimensions, data are not required to be 2-dimensional. - In particular, for case of data_dim == 1, XIOS uses an -\shape italic -1-dimensional block distribution -\shape default - of data, distributed along the first dimension, the x-axis. -\end_layout - -\begin_layout Standard -With the first way to define data on a local domain, we can use: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",data_dim=2, data_ibegin=-1, data_ni=ni+2, - data_jbegin=-1, data_nj=nj+2) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -In order to be processed correctly, data must be specified with the begining - and size of its block . - For two-dimensional data, it can be done with data_ibegin, data_ni for - the first dimension and data_jbegin, data_nj for the second dimension. - In case of one-dimensional data, it is only necessary to determine data_ibegin - and data_ni. - Although the valid data must be inside a local domain, it is not neccessary - for data to have same size as local domain. - In fact, data can have larger size than domain on each dimension, this - is often the case of -\begin_inset Quotes eld -\end_inset - -ghost cell -\begin_inset Quotes erd -\end_inset - -. - The attributes data_ibegin and data_jbegin specify the offset of data from - local domain. - For local domain_A, the negative value indicates that data is larger than - local domain, the valid part of data needs extracted from the real data. - A positive value indicates data is smaller than local domain. - The default value of data_ibegin/data_jbegin is 0, which implies that data - fit into local domain properly. - -\end_layout - -\begin_layout Standard -\begin_inset Float figure -placement !tbph -wide false -sideways false -status open - -\begin_layout Plain Layout -\begin_inset Graphics - filename ../images/Domain.pdf - lyxscale 50 - scale 60 - -\end_inset - - -\end_layout - -\begin_layout Plain Layout -\begin_inset Caption Standard - -\begin_layout Plain Layout -Local domain with data -\end_layout - -\end_inset - - -\begin_inset CommandInset label -LatexCommand label -name "localDomain" - -\end_inset - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -On Figure -\begin_inset CommandInset ref -LatexCommand ref -reference "localDomain" - -\end_inset - -, local domain occupies the center of the global domain, where real data - fill up a larger region. - Only data inside the local domain, represented by blue cells, are valid. - -\end_layout - -\begin_layout Standard -With the secon way, data can be represented with: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",data_dim=2, data_i_index=dataI, data_j_inde -x=dataJ) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout Itemize -dataJ = {-1,-1,-1,-1,-1,0,0,0,0,0,1,1,1,1,1,2,2,2,3,3,3,3,3} -\end_layout - -\begin_layout Itemize -dataI = {-1,0,1,2,3,-1,0,1,2,3,-1,0,1,2,3,-1,0,1,2,3,-1,0,1,2,3} -\end_layout - -\begin_layout Standard -As mentioned, data on a domain are two-dimensional but in some cases, there - is a need to write data continously, there comes one-dimensional data. - With the precedent example, we can define one dimensional data with: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",data_dim=1, data_i_index=dataI) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -and -\end_layout - -\begin_layout Itemize -dataI = {-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18} -\end_layout - -\begin_layout Standard -Above are the mandatory attributes to define local domain. - There are some auxilliary attributes which make data meaningful, especially - for meteorological one. - The next section disscuses these attributes. -\end_layout - -\begin_layout Subsection -Longitude and latitude -\end_layout - -\begin_layout Standard -Different from the previous version, in XIOS 2.0, lonngitude and latitude - are optional. - Moreover, to be coherent to the data_dim concept, there are more ways to - input longitude and latitude values. -\end_layout - -\begin_layout Standard -Like data, longitude and latitude values can be one or two dimension. - The first ones are represented with lonvalue_1d, latvalue_1d; the second - ones are specified with lonvalue_2d and latvalue_2d. -\end_layout - -\begin_layout Standard -With the same domain_A, we can set longitude and latitude values by calling: -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",lonvalue_1d=lon1D, latvalue_1d=lat1D) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout Itemize -lon1D = {30, 40, 50, 30, 40, 50, 30, 40, 50} -\end_layout - -\begin_layout Itemize -lat1D = {30, 30, 30, 40, 40, 40, 50, 50, 50} -\end_layout - -\begin_layout Standard -Or by using two-dimension longitude and latitude -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - -CALL xios_set_domain_attr("domain_A",lonvalue_2d=lon2D, latvalue_1d=lat2D) -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -with -\end_layout - -\begin_layout Itemize -lon2D = { -\begin_inset Formula $\begin{array}{ccc} -30 & 40 & 50\\ -30 & 40 & 50\\ -30 & 40 & 50 -\end{array}$ -\end_inset - -} -\end_layout - -\begin_layout Itemize -lat1D = { -\begin_inset Formula $\begin{array}{ccc} -30 & 30 & 30\\ -40 & 40 & 40\\ -50 & 50 & 50 -\end{array}$ -\end_inset - -} -\end_layout - -\begin_layout Standard -For unstructured mesh, a cell can have different number of vertices than - rectinlinear, in this case, longitude and latitude value of the vertex - of cell are specified with bounds_lon_1d and bounds_lat_1d. -\end_layout - -\begin_layout Standard -For curvilinear mesh, bounds_lon_2d and bounds_lat_2d provide a convenient - way to define longitude and latitude value for the vertex of the cell. - However, it is possible to use bounds_lon_1d and bounds_lat_1d to describe - these values. -\end_layout - -\begin_layout Standard -One thing to remind, only *_1d or *_2d attributes are used, if *_1d and - *_2d of a same attribute are provides, there will be runtime error. -\end_layout - -\begin_layout Standard -All attributes of domain can be found in Reference Guide. -\end_layout - -\end_body -\end_document diff --git a/xios_2311_src/doc/inputs/user/Grid.lyx b/xios_2311_src/doc/inputs/user/Grid.lyx deleted file mode 100644 index 8ecebb61e6ccf425373b60917acc47b3b17db817..0000000000000000000000000000000000000000 --- a/xios_2311_src/doc/inputs/user/Grid.lyx +++ /dev/null @@ -1,511 +0,0 @@ -#LyX 2.1 created this file. For more info see http://www.lyx.org/ -\lyxformat 474 -\begin_document -\begin_header -\textclass book -\use_default_options true -\master ../../XIOS_user_guide.lyx -\maintain_unincluded_children false -\language english -\language_package default -\inputencoding auto -\fontencoding global -\font_roman default -\font_sans default -\font_typewriter default -\font_math auto -\font_default_family default -\use_non_tex_fonts false -\font_sc false -\font_osf false -\font_sf_scale 100 -\font_tt_scale 100 -\graphics default -\default_output_format default -\output_sync 0 -\bibtex_command default -\index_command default -\float_placement !tph -\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 1 -\index Index -\shortcut idx -\color #008000 -\end_index -\secnumdepth 3 -\tocdepth 3 -\paragraph_separation indent -\paragraph_indentation default -\quotes_language english -\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 Chapter -Grid -\end_layout - -\begin_layout Section -Overview -\end_layout - -\begin_layout Standard -Grid plays an important role in XIOS. - Same as Field, Grid is one of the basic elements in XIOS, which should - be well defined, not only in the configuration file but also in the FORTRAN - code. - Because, until now, XIOS has mainly served for writing NetCDF data format, - most of its components are inspired from NetCDF Data Model, and Grid is - not an exception. - Grid is a concept describing dimensions that contain the axes of the data - arrays. - Moreover, Grid always consists of an unlimited dimension whose length can - be expanded at any time. - Other dimensions can be described with Domain and Axis. - The followings describe how to make use of Grid in XIOS. - Details of its attributes and operations can be found in XIOS reference - guide. -\end_layout - -\begin_layout Section -Working with configuration file -\end_layout - -\begin_layout Standard -As mentioned above, a grid contains the axes of the data arrays, which are - characterized by Domain and/or Axis. - A domain is composed of a 2-dimension array, meanwhile an axis is, as its - name, an 1-dimension array. - -\end_layout - -\begin_layout Standard -Like other components of XIOS, a grid is defined inside its definition part - with the tag -\series bold -\color black -grid_definition -\series default -\color inherit - -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status collapsed - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -As XIOS supports netCDF-4/HDF5, it allows user to gather several grids into - groups to better organize data. - Very often, grids are grouped, basing on the dimensions that they describe. - However, there is not a limit for user to group out the grids. - The more important thing than grid_group is grid. - A grid is defined with the tag -\series bold -\color black -grid. - -\end_layout - -\begin_layout Standard -While it is not crucial for a grid group not to have an identification specified - by attribute id, a grid must be assigned an id to become useful. - Unlike grid group is a way of hierarchically organizing related grid only, - a grid itself is referenced by fields with its id. - Without the id, a grid can not be made used of by a field. - Id is a string of anything but there is one thing to remember: id of a - grid as well as id of any component in XIOS are -\shape italic -\color black -unique -\shape default -\color inherit - among this kind of components. - It is not allowed to have two grids with a same id, but it is permitted - a grid and, for example, a domain to share a same one. - -\end_layout - -\begin_layout Standard -A grid is defined by domain(s) and axis. - A domain represents two-dimension data while an axis serves as one-dimension - data. - They are defined inside the grid definition. - One of the convenient and effective way to reuse the definitions in XIOS - is to take advantage of attribute *_ref. - On using *_ref, the referencing component has all attributes from its reference -d one. - As the example below, grid with id -\begin_inset Quotes eld -\end_inset - -grid_A -\begin_inset Quotes erd -\end_inset - - (from now one, called grid_A), is composed of one domain whose attributes - derived directly from another one-domain_A, and one axis whose attributes - are taken from axis axis_C, which are defined previously. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The *_ref can only used to reference to a already defined element (e.g domain, - axis, grid, etc). - If these *_ref have not been defined yet, there will be a runtime error. -\end_layout - -\begin_layout Standard -Details about domain and axis can be found in other sections but there is - one thing to bear in mind: A domain represents two-dimension data and it - also contains several special information: longitude, latitude, bound, - etc. - For the meteorological mind, domain indicates a surface with latitude and - longitude, whereas axis represents a vertical level. - -\end_layout - -\begin_layout Standard -In general cases, there is only a need of writing some multidimensional - data to a netCDF without any specific information, then comes the following - definition of grid. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The grid_All_Axis is similar to grid_A, but with three dimensions defined - by 3 axis that can be described in any way on demand of user. - For example, the axis_A and the axis_B can have corresponding name latitude - and longitude to characterize a two-dimension surface with latitude and - longitude. -\end_layout - -\begin_layout Standard -Very often, one dimensional data needs writing to netCDF, it can be easily - done with the following XML code -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -As it is discussed more details in the next section, but remember that even - the non-distributed one dimensional data can be well processed by XIOS. - -\end_layout - -\begin_layout Standard -As mentioned above, grid includes by default one unlimited dimension which - is often used as time step axis. - In order to write only time step to netCDF, XIOS provides a special way - to do: empty grid - a grid without any domain or axis. -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - -\end_layout - -\begin_layout Plain Layout - - -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -∆The order of domain and/or in grid definition decides order of data written - to netCDF: data on domain or axis appearing firstly in grid definition - will vary the most. - For example, on using ncdump command on netCDF which contains data written - on the grid_A . -\end_layout - -\begin_layout Standard -\begin_inset listings -lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" -inline false -status open - -\begin_layout Plain Layout - - float field_A(time_counter, axis_A, y, x) ; -\end_layout - -\begin_layout Plain Layout - - field_A:online_operation = "average" ; -\end_layout - -\begin_layout Plain Layout - - field_A:interval_operation = "3600s" ; -\end_layout - -\begin_layout Plain Layout - - field_A:interval_write = "6h" ; -\end_layout - -\begin_layout Plain Layout - - field_A:coordinates = "time_centered axis_A nav_lat nav_lon" ; -\end_layout - -\end_inset - - -\end_layout - -\begin_layout Standard -The data vary most quickly on dimension y, x which are two axes of domain_A. - These are the default name of these dimension of a domain. - The data on axis_C vary slower than on the domain and all the data are - written one time step defined by time_counter at a time. -\end_layout - -\begin_layout Standard -Although a grid can be easily configured in XML file, it also needs defining - in the FORTRAN via the definition of domain and axis for a model to work - fully and correctly. - All these instruction will be detailed in the next section. -\end_layout - -\begin_layout Section -Working with FORTRAN code -\end_layout - -\begin_layout Standard -Because grid is composed of domain and axis, all processing are taken grid - via Domain and Axis. - The next chapters supply the detail of these two sub components. - -\end_layout - -\end_body -\end_document diff --git a/xios_2311_src/doc/reference_xml.pdf b/xios_2311_src/doc/reference_xml.pdf deleted file mode 100644 index 1f5bee63f8a58b4fcba43a33249f03db9190971c..0000000000000000000000000000000000000000 Binary files a/xios_2311_src/doc/reference_xml.pdf and /dev/null differ diff --git a/xios_2311_src/extern/blitz/blitz/.cvsignore b/xios_2311_src/extern/blitz/blitz/.cvsignore deleted file mode 100644 index 0d014235efec2f0a80bfb80e3735833f21567a4c..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/.cvsignore +++ /dev/null @@ -1,30 +0,0 @@ -Makefile -Makefile.in -*.lo -*.la -.deps -.libs -config.h -matbops.h -mathfunc.h -promote-old.h -matuops.h -vecbfn.cc -vecbops.cc -vecuops.cc -vecwhere.cc -new-config.h -new-config.h.in -stamp-h1 -config.h.in -apple -intel -ibm -compaq -hp -sgi -gnu -pgi -pathscale -kai -fujitsu diff --git a/xios_2311_src/extern/blitz/blitz/Makefile b/xios_2311_src/extern/blitz/blitz/Makefile deleted file mode 100644 index 081dbbf453a7829815b9d5904e14d171567bb2d7..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/Makefile +++ /dev/null @@ -1,860 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# blitz/Makefile. Generated from Makefile.in by configure. - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - - -# -# Written by Patrick Guio -# - - -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/blitz -pkgincludedir = $(includedir)/blitz -pkglibdir = $(libdir)/blitz -pkglibexecdir = $(libexecdir)/blitz -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = x86_64-unknown-linux-gnu -host_triplet = x86_64-unknown-linux-gnu -target_triplet = x86_64-unknown-linux-gnu -subdir = blitz -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_cxx_features.m4 \ - $(top_srcdir)/m4/ac_compiler_specific_header.m4 \ - $(top_srcdir)/m4/ac_compilers_64bits.m4 \ - $(top_srcdir)/m4/ac_cxx_alignment_directive.m4 \ - $(top_srcdir)/m4/ac_cxx_bool.m4 \ - $(top_srcdir)/m4/ac_cxx_complex_math_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_const_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_default_template_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_dynamic_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_debug.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_optimize.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations_with_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_exceptions.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit_template_function_qualification.m4 \ - $(top_srcdir)/m4/ac_cxx_flags_preset.m4 \ - $(top_srcdir)/m4/ac_cxx_full_specialization_syntax.m4 \ - $(top_srcdir)/m4/ac_cxx_function_nontype_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_general.m4 \ - $(top_srcdir)/m4/ac_cxx_have_climits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_fcns.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math1.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math2.m4 \ - $(top_srcdir)/m4/ac_cxx_have_cstring.m4 \ - $(top_srcdir)/m4/ac_cxx_have_ieee_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_numeric_limits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_rusage.m4 \ - $(top_srcdir)/m4/ac_cxx_have_std.m4 \ - $(top_srcdir)/m4/ac_cxx_have_stl.m4 \ - $(top_srcdir)/m4/ac_cxx_have_system_v_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_valarray.m4 \ - $(top_srcdir)/m4/ac_cxx_isnan_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_keywords.m4 \ - $(top_srcdir)/m4/ac_cxx_math_absint_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_math_fn_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_member_constants.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates_outside_class.m4 \ - $(top_srcdir)/m4/ac_cxx_mutable.m4 \ - $(top_srcdir)/m4/ac_cxx_namespaces.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict_egcs.m4 \ - $(top_srcdir)/m4/ac_cxx_old_for_scoping.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_ordering.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_specialization.m4 \ - $(top_srcdir)/m4/ac_cxx_reinterpret_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_rtti.m4 \ - $(top_srcdir)/m4/ac_cxx_standard_library.m4 \ - $(top_srcdir)/m4/ac_cxx_static_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_template_keyword_qualifier.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_base_class.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_return_type.m4 \ - $(top_srcdir)/m4/ac_cxx_template_scoped_argument_matching.m4 \ - $(top_srcdir)/m4/ac_cxx_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_as_template_arguments.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_features.m4 \ - $(top_srcdir)/m4/ac_cxx_type_casts.m4 \ - $(top_srcdir)/m4/ac_cxx_type_promotion.m4 \ - $(top_srcdir)/m4/ac_cxx_typename.m4 \ - $(top_srcdir)/m4/ac_cxx_use_numtrait.m4 \ - $(top_srcdir)/m4/ac_env.m4 \ - $(top_srcdir)/m4/ac_fortran_flags_preset.m4 \ - $(top_srcdir)/m4/ac_info.m4 $(top_srcdir)/m4/ac_lib_blas.m4 \ - $(top_srcdir)/m4/ac_prog_doxygen.m4 \ - $(top_srcdir)/m4/ax_boost_base.m4 \ - $(top_srcdir)/m4/ax_boost_serialization.m4 \ - $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ - $(top_srcdir)/m4/ax_dirname.m4 \ - $(top_srcdir)/m4/ax_prefix_config_h.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(blitz_HEADERS) \ - $(nobase_blitz_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_$(V)) -am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(blitzdir)" "$(DESTDIR)$(blitzdir)" -HEADERS = $(blitz_HEADERS) $(nobase_blitz_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in README -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing aclocal-1.15 -AMTAR = $${TAR-tar} -AM_DEFAULT_VERBOSITY = 1 -AR = ar -AR_FLAGS = -cru -AUTOCONF = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing autoconf -AUTOHEADER = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing autoheader -AUTOMAKE = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing automake-1.15 -AWK = gawk -BLASLIB = -BOOST_CPPFLAGS = -BOOST_LDFLAGS = -BOOST_SERIALIZATION_LIB = -CC = gcc -CCDEPMODE = depmode=gcc3 -CFLAGS = -g -O2 -COMPILER_SPECIFIC_HEADER = intel/bzconfig.h -CPP = gcc -E -CPPFLAGS = -CXX = icc -CXXCPP = icc -E -CXXDEPMODE = depmode=gcc3 -CXXFCFLAG = -DFORTRAN_90 -DBZ_FORTRAN_SYMBOLS_WITH_TRAILING_UNDERSCORES -CXXFFLAGS = -DBZ_FORTRAN_SYMBOLS_WITH_TRAILING_UNDERSCORES -CXXFLAGS = -ansi -CXX_DEBUG_FLAGS = -g -O0 -C -DBZ_DEBUG -CXX_LIBS = -CXX_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -ansi_alias -CXX_PROFIL_FLAGS = -pg -CYGPATH_W = echo -DATE = Fri Sep 7 15:06:08 CEST 2018 -DEFS = -DHAVE_CONFIG_H -DEPDIR = .deps -DLLTOOL = false -DOT = -DOXYGEN = -DSYMUTIL = -DUMPBIN = -ECHO_C = -ECHO_N = -n -ECHO_T = -EGREP = /bin/grep -E -EXEEXT = -F77 = ifort -F77_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -pad -unroll -fno-alias -safe_cray_ptr -FC = ifort -FCFLAGS = -FR -FCFLAGS_f90 = -FCLIBS = -L/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -FC_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -pad -unroll -fno-alias -safe_cray_ptr -FFLAGS = -FGREP = /bin/grep -F -FLIBS = -L/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -GREP = /bin/grep -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM = ${INSTALL} -INSTALL_SCRIPT = ${INSTALL} -INSTALL_STRIP_PROGRAM = $(install_sh) -c -s -LD = /usr/bin/ld -m elf_x86_64 -LDFLAGS = -LIBOBJS = -LIBS = -LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIPO = -LN_S = ln -s -LTLIBOBJS = -MAINT = # -MAKEINFO = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing makeinfo -MANIFEST_TOOL = : -MKDIR_P = /bin/mkdir -p -NM = /usr/bin/nm -B -NMEDIT = -OBJDUMP = objdump -OBJEXT = o -OS = Linux curie90 2.6.32-696.30.1.el6.Bull.140.x86_64 #1 SMP Thu May 31 01:41:35 CEST 2018 x86_64 x86_64 x86_64 GNU/Linux -OTOOL = -OTOOL64 = -PACKAGE = blitz -PACKAGE_BUGREPORT = blitz-support@lists.sourceforge.net -PACKAGE_NAME = blitz -PACKAGE_STRING = blitz 0.10 -PACKAGE_TARNAME = blitz -PACKAGE_URL = -PACKAGE_VERSION = 0.10 -PATH_SEPARATOR = : -RANLIB = ranlib -SED = /bin/sed -SET_MAKE = -SHELL = /bin/sh -STRIP = strip -TEXI2HTML = -VERSION = 0.10 -abs_builddir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/blitz -abs_srcdir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/blitz -abs_top_builddir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1 -abs_top_srcdir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1 -ac_ct_AR = ar -ac_ct_CC = gcc -ac_ct_CXX = -ac_ct_DUMPBIN = -ac_ct_F77 = ifort -ac_ct_FC = ifort -am__include = include -am__leading_dot = . -am__quote = -am__tar = $${TAR-tar} chof - "$$tardir" -am__untar = $${TAR-tar} xf - -bindir = ${exec_prefix}/bin -build = x86_64-unknown-linux-gnu -build_alias = -build_cpu = x86_64 -build_os = linux-gnu -build_vendor = unknown -builddir = . -datadir = ${datarootdir} -datarootdir = ${prefix}/share -docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} -dvidir = ${docdir} -enable_dot = no -enable_html_docs = no -enable_latex_docs = no -exec_prefix = ${prefix} -host = x86_64-unknown-linux-gnu -host_alias = -host_cpu = x86_64 -host_os = linux-gnu -host_vendor = unknown -htmldir = ${docdir} -includedir = ${prefix}/include -infodir = ${datarootdir}/info -install_sh = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/install-sh -libdir = ${exec_prefix}/lib -libexecdir = ${exec_prefix}/libexec -localedir = ${datarootdir}/locale -localstatedir = ${prefix}/var -mandir = ${datarootdir}/man -mkdir_p = $(MKDIR_P) -oldincludedir = /usr/include -pdfdir = ${docdir} -pkgconfig_libdir = ${libdir}/pkgconfig -pkgconfig_libfile = blitz.pc -prefix = /usr/local -program_transform_name = s,x,x, -psdir = ${docdir} -sbindir = ${exec_prefix}/sbin -sharedstatedir = ${prefix}/com -srcdir = . -sysconfdir = ${prefix}/etc -target = x86_64-unknown-linux-gnu -target_alias = -target_cpu = x86_64 -target_os = linux-gnu -target_vendor = unknown -top_build_prefix = ../ -top_builddir = .. -top_srcdir = .. -valgrind = yes -SUBDIRS = generate meta array -blitzdir = $(includedir)/blitz -generatedir = ./generate -genheaders = -#matbops.h mathfunc.h matuops.h promote-old.h vecbops.cc vecuops.cc vecwhere.cc -blitz_HEADERS = array-impl.h array.cc array.h bench.cc bench.h \ -benchext.cc benchext.h blitz.h bounds.h bzconfig.h bzdebug.h \ -compiler.h constpointerstack.h etbase.h et-forward.h funcs.h \ -globeval.cc indexexpr.h indexmap-forward.h levicivita.h limits-hack.h \ -listinit.h memblock.cc memblock.h minmax.h numinquire.h numtrait.h \ -ops.h prettyprint.h promote.h range.h range.cc ranks.h reduce.h \ -shapecheck.h simdtypes.h tau.h timer.h tinymat2.h tinymat2.cc \ -tinymat2io.cc tinyvec2.cc tinyvec2.h tinyvec2io.cc tm2fastiter.h \ -tmevaluate.h tv2fastiter.h tvevaluate.h traversal.cc traversal.h \ -tuning.h tvcross.h tvecglobs.h update.h wrap-climits.h $(genheaders) - -EXTRA_HEADERS = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -nobase_blitz_HEADERS = $(COMPILER_SPECIFIC_HEADER) -DISTCLEANFILES = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign blitz/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign blitz/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: # $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): # $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @test -f $@ || rm -f stamp-h1 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status blitz/config.h -$(srcdir)/config.h.in: # $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-blitzHEADERS: $(blitz_HEADERS) - @$(NORMAL_INSTALL) - @list='$(blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(blitzdir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(blitzdir)" || exit $$?; \ - done - -uninstall-blitzHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(blitzdir)'; $(am__uninstall_files_from_dir) -install-nobase_blitzHEADERS: $(nobase_blitz_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nobase_blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)" || exit 1; \ - fi; \ - $(am__nobase_list) | while read dir files; do \ - xfiles=; for file in $$files; do \ - if test -f "$$file"; then xfiles="$$xfiles $$file"; \ - else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ - test -z "$$xfiles" || { \ - test "x$$dir" = x. || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)/$$dir'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)/$$dir"; }; \ - echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(blitzdir)/$$dir'"; \ - $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(blitzdir)/$$dir" || exit $$?; }; \ - done - -uninstall-nobase_blitzHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nobase_blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ - dir='$(DESTDIR)$(blitzdir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(HEADERS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(blitzdir)" "$(DESTDIR)$(blitzdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-blitzHEADERS install-nobase_blitzHEADERS - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-blitzHEADERS uninstall-nobase_blitzHEADERS - -.MAKE: $(am__recursive_targets) all install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool clean-local \ - cscopelist-am ctags ctags-am distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-blitzHEADERS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-nobase_blitzHEADERS install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-blitzHEADERS \ - uninstall-nobase_blitzHEADERS - -.PRECIOUS: Makefile - - -clean-local: - -rm -rf config.h $(genheaders) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/xios_2311_src/extern/blitz/blitz/Makefile.am b/xios_2311_src/extern/blitz/blitz/Makefile.am deleted file mode 100644 index f2dfd8793c62be51c5630d77ea8b502912441f19..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/Makefile.am +++ /dev/null @@ -1,35 +0,0 @@ -# -# Written by Patrick Guio -# - -SUBDIRS = generate meta array - -blitzdir = $(includedir)/blitz -generatedir = ./generate - -genheaders = -#matbops.h mathfunc.h matuops.h promote-old.h vecbops.cc vecuops.cc vecwhere.cc - -blitz_HEADERS = array-impl.h array.cc array.h bench.cc bench.h \ -benchext.cc benchext.h blitz.h bounds.h bzconfig.h bzdebug.h \ -compiler.h constpointerstack.h etbase.h et-forward.h funcs.h \ -globeval.cc indexexpr.h indexmap-forward.h levicivita.h limits-hack.h \ -listinit.h memblock.cc memblock.h minmax.h numinquire.h numtrait.h \ -ops.h prettyprint.h promote.h range.h range.cc ranks.h reduce.h \ -shapecheck.h simdtypes.h tau.h timer.h tinymat2.h tinymat2.cc \ -tinymat2io.cc tinyvec2.cc tinyvec2.h tinyvec2io.cc tm2fastiter.h \ -tmevaluate.h tv2fastiter.h tvevaluate.h traversal.cc traversal.h \ -tuning.h tvcross.h tvecglobs.h update.h wrap-climits.h $(genheaders) - -EXTRA_HEADERS = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -nobase_blitz_HEADERS = $(COMPILER_SPECIFIC_HEADER) - -DISTCLEANFILES = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -clean-local: - -rm -rf config.h $(genheaders) diff --git a/xios_2311_src/extern/blitz/blitz/Makefile.in b/xios_2311_src/extern/blitz/blitz/Makefile.in deleted file mode 100644 index df34bfdf4d60fd86d30ba6d2846916e0052e72b3..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/Makefile.in +++ /dev/null @@ -1,860 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Written by Patrick Guio -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = blitz -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_cxx_features.m4 \ - $(top_srcdir)/m4/ac_compiler_specific_header.m4 \ - $(top_srcdir)/m4/ac_compilers_64bits.m4 \ - $(top_srcdir)/m4/ac_cxx_alignment_directive.m4 \ - $(top_srcdir)/m4/ac_cxx_bool.m4 \ - $(top_srcdir)/m4/ac_cxx_complex_math_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_const_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_default_template_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_dynamic_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_debug.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_optimize.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations_with_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_exceptions.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit_template_function_qualification.m4 \ - $(top_srcdir)/m4/ac_cxx_flags_preset.m4 \ - $(top_srcdir)/m4/ac_cxx_full_specialization_syntax.m4 \ - $(top_srcdir)/m4/ac_cxx_function_nontype_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_general.m4 \ - $(top_srcdir)/m4/ac_cxx_have_climits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_fcns.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math1.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math2.m4 \ - $(top_srcdir)/m4/ac_cxx_have_cstring.m4 \ - $(top_srcdir)/m4/ac_cxx_have_ieee_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_numeric_limits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_rusage.m4 \ - $(top_srcdir)/m4/ac_cxx_have_std.m4 \ - $(top_srcdir)/m4/ac_cxx_have_stl.m4 \ - $(top_srcdir)/m4/ac_cxx_have_system_v_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_valarray.m4 \ - $(top_srcdir)/m4/ac_cxx_isnan_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_keywords.m4 \ - $(top_srcdir)/m4/ac_cxx_math_absint_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_math_fn_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_member_constants.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates_outside_class.m4 \ - $(top_srcdir)/m4/ac_cxx_mutable.m4 \ - $(top_srcdir)/m4/ac_cxx_namespaces.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict_egcs.m4 \ - $(top_srcdir)/m4/ac_cxx_old_for_scoping.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_ordering.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_specialization.m4 \ - $(top_srcdir)/m4/ac_cxx_reinterpret_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_rtti.m4 \ - $(top_srcdir)/m4/ac_cxx_standard_library.m4 \ - $(top_srcdir)/m4/ac_cxx_static_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_template_keyword_qualifier.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_base_class.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_return_type.m4 \ - $(top_srcdir)/m4/ac_cxx_template_scoped_argument_matching.m4 \ - $(top_srcdir)/m4/ac_cxx_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_as_template_arguments.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_features.m4 \ - $(top_srcdir)/m4/ac_cxx_type_casts.m4 \ - $(top_srcdir)/m4/ac_cxx_type_promotion.m4 \ - $(top_srcdir)/m4/ac_cxx_typename.m4 \ - $(top_srcdir)/m4/ac_cxx_use_numtrait.m4 \ - $(top_srcdir)/m4/ac_env.m4 \ - $(top_srcdir)/m4/ac_fortran_flags_preset.m4 \ - $(top_srcdir)/m4/ac_info.m4 $(top_srcdir)/m4/ac_lib_blas.m4 \ - $(top_srcdir)/m4/ac_prog_doxygen.m4 \ - $(top_srcdir)/m4/ax_boost_base.m4 \ - $(top_srcdir)/m4/ax_boost_serialization.m4 \ - $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ - $(top_srcdir)/m4/ax_dirname.m4 \ - $(top_srcdir)/m4/ax_prefix_config_h.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(blitz_HEADERS) \ - $(nobase_blitz_HEADERS) $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(blitzdir)" "$(DESTDIR)$(blitzdir)" -HEADERS = $(blitz_HEADERS) $(nobase_blitz_HEADERS) -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in README -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AR_FLAGS = @AR_FLAGS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLASLIB = @BLASLIB@ -BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ -BOOST_LDFLAGS = @BOOST_LDFLAGS@ -BOOST_SERIALIZATION_LIB = @BOOST_SERIALIZATION_LIB@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -COMPILER_SPECIFIC_HEADER = @COMPILER_SPECIFIC_HEADER@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFCFLAG = @CXXFCFLAG@ -CXXFFLAGS = @CXXFFLAGS@ -CXXFLAGS = @CXXFLAGS@ -CXX_DEBUG_FLAGS = @CXX_DEBUG_FLAGS@ -CXX_LIBS = @CXX_LIBS@ -CXX_OPTIMIZE_FLAGS = @CXX_OPTIMIZE_FLAGS@ -CXX_PROFIL_FLAGS = @CXX_PROFIL_FLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATE = @DATE@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -F77_OPTIMIZE_FLAGS = @F77_OPTIMIZE_FLAGS@ -FC = @FC@ -FCFLAGS = @FCFLAGS@ -FCFLAGS_f90 = @FCFLAGS_f90@ -FCLIBS = @FCLIBS@ -FC_OPTIMIZE_FLAGS = @FC_OPTIMIZE_FLAGS@ -FFLAGS = @FFLAGS@ -FGREP = @FGREP@ -FLIBS = @FLIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OS = @OS@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TEXI2HTML = @TEXI2HTML@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_FC = @ac_ct_FC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_libdir = @pkgconfig_libdir@ -pkgconfig_libfile = @pkgconfig_libfile@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -valgrind = @valgrind@ -SUBDIRS = generate meta array -blitzdir = $(includedir)/blitz -generatedir = ./generate -genheaders = -#matbops.h mathfunc.h matuops.h promote-old.h vecbops.cc vecuops.cc vecwhere.cc -blitz_HEADERS = array-impl.h array.cc array.h bench.cc bench.h \ -benchext.cc benchext.h blitz.h bounds.h bzconfig.h bzdebug.h \ -compiler.h constpointerstack.h etbase.h et-forward.h funcs.h \ -globeval.cc indexexpr.h indexmap-forward.h levicivita.h limits-hack.h \ -listinit.h memblock.cc memblock.h minmax.h numinquire.h numtrait.h \ -ops.h prettyprint.h promote.h range.h range.cc ranks.h reduce.h \ -shapecheck.h simdtypes.h tau.h timer.h tinymat2.h tinymat2.cc \ -tinymat2io.cc tinyvec2.cc tinyvec2.h tinyvec2io.cc tm2fastiter.h \ -tmevaluate.h tv2fastiter.h tvevaluate.h traversal.cc traversal.h \ -tuning.h tvcross.h tvecglobs.h update.h wrap-climits.h $(genheaders) - -EXTRA_HEADERS = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -nobase_blitz_HEADERS = $(COMPILER_SPECIFIC_HEADER) -DISTCLEANFILES = apple/bzconfig.h intel/bzconfig.h ibm/bzconfig.h \ -compaq/bzconfig.h hp/bzconfig.h sgi/bzconfig.h gnu/bzconfig.h \ -pgi/bzconfig.h pathscale/bzconfig.h kai/bzconfig.h fujitsu/bzconfig.h - -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign blitz/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign blitz/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -config.h: stamp-h1 - @test -f $@ || rm -f stamp-h1 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 - -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status blitz/config.h -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f config.h stamp-h1 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-blitzHEADERS: $(blitz_HEADERS) - @$(NORMAL_INSTALL) - @list='$(blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(blitzdir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(blitzdir)" || exit $$?; \ - done - -uninstall-blitzHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(blitzdir)'; $(am__uninstall_files_from_dir) -install-nobase_blitzHEADERS: $(nobase_blitz_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nobase_blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)" || exit 1; \ - fi; \ - $(am__nobase_list) | while read dir files; do \ - xfiles=; for file in $$files; do \ - if test -f "$$file"; then xfiles="$$xfiles $$file"; \ - else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ - test -z "$$xfiles" || { \ - test "x$$dir" = x. || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(blitzdir)/$$dir'"; \ - $(MKDIR_P) "$(DESTDIR)$(blitzdir)/$$dir"; }; \ - echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(blitzdir)/$$dir'"; \ - $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(blitzdir)/$$dir" || exit $$?; }; \ - done - -uninstall-nobase_blitzHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nobase_blitz_HEADERS)'; test -n "$(blitzdir)" || list=; \ - $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ - dir='$(DESTDIR)$(blitzdir)'; $(am__uninstall_files_from_dir) - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(HEADERS) config.h -installdirs: installdirs-recursive -installdirs-am: - for dir in "$(DESTDIR)$(blitzdir)" "$(DESTDIR)$(blitzdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: install-blitzHEADERS install-nobase_blitzHEADERS - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: uninstall-blitzHEADERS uninstall-nobase_blitzHEADERS - -.MAKE: $(am__recursive_targets) all install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic clean-libtool clean-local \ - cscopelist-am ctags ctags-am distclean distclean-generic \ - distclean-hdr distclean-libtool distclean-tags distdir dvi \ - dvi-am html html-am info info-am install install-am \ - install-blitzHEADERS install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-nobase_blitzHEADERS install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-blitzHEADERS \ - uninstall-nobase_blitzHEADERS - -.PRECIOUS: Makefile - - -clean-local: - -rm -rf config.h $(genheaders) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/xios_2311_src/extern/blitz/blitz/README b/xios_2311_src/extern/blitz/blitz/README deleted file mode 100644 index 4bac82651b349f113d33a36b5b377288587fc2d2..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/README +++ /dev/null @@ -1,16 +0,0 @@ -Blitz header file notes - -1) Some matrix headers are included in this release, but only because -the Benchmark class needs them. Their design is not yet stable, -and they are untested, so use them at your own peril. - -2) A compiler-specific header file with configuration settings is included -from the master header file . The compiler-specific -header file is selected on the basis of preprocessor symbols. Since some -C++ compilers (notably the IBM XL compiler for Darwin and for AIX systems) -do not define a unique preprocessor symbol, we have added a -D option in -the autoconf macro AC_CXX_FLAGS_PRESET (see file m4/ac_cxx_flags_preset.m4). -Thus, we use the option -D__APPLE with xlc++ and -D__IBM with xlC. -Please note that any user code must also be compiled with the same -D option -in order to be compiled successfully with one of these compilers. - diff --git a/xios_2311_src/extern/blitz/blitz/array-impl.h b/xios_2311_src/extern/blitz/blitz/array-impl.h deleted file mode 100644 index 4bff205aa754621feff336ba9c18101053316d69..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array-impl.h +++ /dev/null @@ -1,2563 +0,0 @@ -// -*- C++ -*- -/*************************************************************************** - * blitz/array-impl.h Definition of the Array class - * - * $Id$ - * - * Copyright (C) 1997-2011 Todd Veldhuizen - * - * This file is a part of Blitz. - * - * Blitz is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation, either version 3 - * of the License, or (at your option) any later version. - * - * Blitz is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Blitz. If not, see . - * - * Suggestions: blitz-devel@lists.sourceforge.net - * Bugs: blitz-support@lists.sourceforge.net - * - * For more information, please see the Blitz++ Home Page: - * https://sourceforge.net/projects/blitz/ - * - ***************************************************************************/ - -/* - * Wish list for array classes. - * - Arrays whose dimensions are unknown at compile time. - * - where()/elsewhere()/elsewhere() as in Dan Quinlan's implementation - * - block reduction operations - * - conversion to/from matrix & vector - * - apply(T func(T)) - * - apply(T func(const T&)) - * - apply - */ - -#ifndef BZ_ARRAY_H -#define BZ_ARRAY_H - -#include -#include -#include -#include -#include - -#include - -#include // Subarrays and slicing -#include // Tensor index notation -#include // Multicomponent arrays -#include // RectDomain class -#include // GeneralArrayStorage - -#ifdef BZ_HAVE_BOOST_SERIALIZATION -#include -#include -#endif - - -BZ_NAMESPACE(blitz) - -/* - * Forward declarations - */ - -template -class ArrayIterator; - -template -class ConstArrayIterator; - -template -class FastArrayIterator; - -template -class _bz_ArrayExpr; - -template -class IndirectArray; - -template -void swap(Array&,Array&); - -template -void find(Array,1>&,const Array&); - - -/** Declaration of class Array, the "Swiss army knife" of Blitz - expression template classes. This is an arbitrary (at compile - time) rank, arbitrary size container. - - \todo Array should inherit protected from MemoryBlockReference. - To make this work, need to expose - MemoryBlockReference::numReferences() and make Array a - friend of Array for slicing. (Is this still relevant? Array - DOES inherit from MemoryBlockReference.) - */ - -template -class Array : public MemoryBlockReference -#ifdef BZ_NEW_EXPRESSION_TEMPLATES - , public ETBase > -#endif -{ - -private: - typedef MemoryBlockReference T_base; - using T_base::data_; - -public: - ////////////////////////////////////////////// - // Public Types - ////////////////////////////////////////////// - - /* - * T_numtype is the numeric type stored in the array. - * T_index is a vector type which can be used to access elements - * of many-dimensional arrays. - * T_array is the array type itself -- Array - * T_iterator is a a fast iterator for the array, used for expression - * templates - * iterator is a STL-style iterator - * const_iterator is an STL-style const iterator - * T_default_storage is the default storage class type for the array - */ - - typedef P_numtype T_numtype; - typedef TinyVector T_index; - typedef Array T_array; - typedef FastArrayIterator T_iterator; - - typedef ArrayIterator iterator; - typedef ConstArrayIterator const_iterator; - - /** - * Set default storage order. This is configurable - * via #defines as it is can be beneficial to set a - * specific storage for an entire project/file. - * - * First check for the Fortan flag and then the column - * major flag, since Fortran arrays are column major. - */ -#if defined(BZ_FORTRAN_ARRAY) - typedef FortranArray T_default_storage; -#elif defined(BZ_COLUMN_MAJOR_ARRAY) - typedef ColumnMajorArray T_default_storage; -#else - typedef GeneralArrayStorage T_default_storage; -#endif - - static const int rank_ = N_rank; - - ////////////////////////////////////////////// - // Constructors // - ////////////////////////////////////////////// - - - /** Construct an array from an expression. Because this entails a - memory allocation, it is explicit so this fact is obvious to - the user. (There may also be ambiguities in making it - implicit?) */ - template - explicit Array(_bz_ArrayExpr expr); - - /* - * Any missing length arguments will have their value taken from the - * last argument. For example, - * Array A(32,64); - * will create a 32x64x64 array. This is handled by setupStorage(). - */ - - Array(GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - length_ = 0; - stride_ = 0; - zeroOffset_ = 0; - } - - explicit Array(int length0, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - length_[0] = length0; - setupStorage(0); - } - - Array(int length0, int length1, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 2); - TAU_TYPE_STRING(p1, "Array::Array() [T=" - + CT(T_numtype) + ",N=" + CT(N_rank) + "]"); - TAU_PROFILE(p1, "void (int,int)", TAU_BLITZ); - - length_[0] = length0; - length_[1] = length1; - setupStorage(1); - } - - Array(int length0, int length1, int length2, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 3); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - setupStorage(2); - } - - Array(int length0, int length1, int length2, int length3, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 4); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - setupStorage(3); - } - - Array(int length0, int length1, int length2, int length3, int length4, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 5); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - setupStorage(4); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 6); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - setupStorage(5); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, int length6, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 7); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - length_[6] = length6; - setupStorage(6); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, int length6, int length7, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 8); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - length_[6] = length6; - length_[7] = length7; - setupStorage(7); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, int length6, int length7, int length8, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 9); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - length_[6] = length6; - length_[7] = length7; - length_[8] = length8; - setupStorage(8); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, int length6, int length7, int length8, int length9, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 10); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - length_[6] = length6; - length_[7] = length7; - length_[8] = length8; - length_[9] = length9; - setupStorage(9); - } - - Array(int length0, int length1, int length2, int length3, int length4, - int length5, int length6, int length7, int length8, int length9, - int length10, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(N_rank >= 11); - length_[0] = length0; - length_[1] = length1; - length_[2] = length2; - length_[3] = length3; - length_[4] = length4; - length_[5] = length5; - length_[6] = length6; - length_[7] = length7; - length_[8] = length8; - length_[9] = length9; - length_[10] = length10; - setupStorage(10); - } - - /* - * Construct an array from an existing block of memory. Ownership - * is not acquired (this is provided for backwards compatibility). - */ - Array(T_numtype* restrict dataFirst, TinyVector shape, - GeneralArrayStorage storage = - T_default_storage(contiguousData)) - : MemoryBlockReference(_bz_returntype::product(shape), dataFirst, - neverDeleteData), - storage_(storage) - { - BZPRECONDITION(dataFirst != 0); - - length_ = shape; - computeStrides(); - data_ += zeroOffset_; - - } - - /** - Construct an array from an existing block of memory, with a - given set of strides. Ownership is not acquired (i.e. the - memory block will not be freed by Blitz++). This constructor is - used by extractComponent to make a component view of a - multicomponent array, which is by design noncontiguous. This - creates an incorrect length in the MemoryBlockReference (though - that may be of no consequence since we're not freeing the - memory). - */ - Array(T_numtype* restrict dataFirst, TinyVector shape, - TinyVector stride, - GeneralArrayStorage storage = - T_default_storage(contiguousData)) - : MemoryBlockReference(_bz_returntype::product(shape), dataFirst, - neverDeleteData), - storage_(storage) - { - BZPRECONDITION(dataFirst != 0); - - length_ = shape; - stride_ = stride; - calculateZeroOffset(); - data_ += zeroOffset_; - } - - /** - Construct an array from an existing block of memory. If the - storage represents a padded array, the length of the memory block - will be incorrect, which would lead to a crash if - "deleteDataWhenDone" is used. For this reason, we check that the - resulting array is contiguous. - */ - Array(T_numtype* restrict dataFirst, TinyVector shape, - preexistingMemoryPolicy deletionPolicy, - GeneralArrayStorage storage = - T_default_storage(contiguousData)) - : MemoryBlockReference(_bz_returntype::product(shape), dataFirst, - deletionPolicy), - storage_(storage) - { - BZPRECONDITION(dataFirst != 0); - - length_ = shape; - computeStrides(); - data_ += zeroOffset_; - - BZPRECHECK(deletionPolicy!=deleteDataWhenDone || isStorageContiguous(), "Non-contiguous storage used with owned pre-existing memory"); - - if (deletionPolicy == duplicateData) - reference(copy()); - } - - /** - Construct an array from an existing block of memory, with a given - set of strides. If the strides represent a noncontiguous array, - the calculated length of the memory block will be wrong, which - will lead to a crash if "deleteDataWhenDone" is specified. For - this reason, we check that the resulting array is contiguous. - */ - Array(T_numtype* restrict dataFirst, TinyVector shape, - TinyVector stride, - preexistingMemoryPolicy deletionPolicy, - GeneralArrayStorage storage = - T_default_storage(contiguousData)) - : MemoryBlockReference(_bz_returntype::product(shape), dataFirst, - deletionPolicy), - storage_(storage) - { - BZPRECONDITION(dataFirst != 0); - - length_ = shape; - stride_ = stride; - calculateZeroOffset(); - data_ += zeroOffset_; - - BZPRECHECK(deletionPolicy!=deleteDataWhenDone || isStorageContiguous(), "Non-contiguous storage used with owned pre-existing memory"); - - if (deletionPolicy == duplicateData) - reference(copy()); - } - - /* - * This constructor takes an extent (length) vector and storage format. - */ - - Array(const TinyVector& extent, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - length_ = extent; - setupStorage(N_rank - 1); - } - - /* - * This construct takes a vector of bases (lbounds) and a vector of - * extents. - */ - - Array(const TinyVector& lbounds, - const TinyVector& extent, - const GeneralArrayStorage& storage - = T_default_storage()); - - /* - * These constructors allow arbitrary bases (starting indices) to be set. - * e.g. Array A(Range(10,20), Range(20,30)) - * will create an 11x11 array whose indices are 10..20 and 20..30 - */ - Array(Range r0, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - setupStorage(0); - } - - Array(Range r0, Range r1, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - - setupStorage(1); - } - - Array(Range r0, Range r1, Range r2, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - - setupStorage(2); - } - - Array(Range r0, Range r1, Range r2, Range r3, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - - setupStorage(3); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - - setupStorage(4); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - - setupStorage(5); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - Range r6, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous() && r6.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - length_[6] = r6.length(); - storage_.setBase(6, r6.first()); - - setupStorage(6); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - Range r6, Range r7, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous() && r6.isAscendingContiguous() - && r7.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - length_[6] = r6.length(); - storage_.setBase(6, r6.first()); - length_[7] = r7.length(); - storage_.setBase(7, r7.first()); - - setupStorage(7); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - Range r6, Range r7, Range r8, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous() && r6.isAscendingContiguous() - && r7.isAscendingContiguous() && r8.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - length_[6] = r6.length(); - storage_.setBase(6, r6.first()); - length_[7] = r7.length(); - storage_.setBase(7, r7.first()); - length_[8] = r8.length(); - storage_.setBase(8, r8.first()); - - setupStorage(8); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - Range r6, Range r7, Range r8, Range r9, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous() && r6.isAscendingContiguous() - && r7.isAscendingContiguous() && r8.isAscendingContiguous() - && r9.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - length_[6] = r6.length(); - storage_.setBase(6, r6.first()); - length_[7] = r7.length(); - storage_.setBase(7, r7.first()); - length_[8] = r8.length(); - storage_.setBase(8, r8.first()); - length_[9] = r9.length(); - storage_.setBase(9, r9.first()); - - setupStorage(9); - } - - Array(Range r0, Range r1, Range r2, Range r3, Range r4, Range r5, - Range r6, Range r7, Range r8, Range r9, Range r10, - GeneralArrayStorage storage = T_default_storage()) - : storage_(storage) - { - BZPRECONDITION(r0.isAscendingContiguous() && - r1.isAscendingContiguous() && r2.isAscendingContiguous() - && r3.isAscendingContiguous() && r4.isAscendingContiguous() - && r5.isAscendingContiguous() && r6.isAscendingContiguous() - && r7.isAscendingContiguous() && r8.isAscendingContiguous() - && r9.isAscendingContiguous() && r10.isAscendingContiguous()); - - length_[0] = r0.length(); - storage_.setBase(0, r0.first()); - length_[1] = r1.length(); - storage_.setBase(1, r1.first()); - length_[2] = r2.length(); - storage_.setBase(2, r2.first()); - length_[3] = r3.length(); - storage_.setBase(3, r3.first()); - length_[4] = r4.length(); - storage_.setBase(4, r4.first()); - length_[5] = r5.length(); - storage_.setBase(5, r5.first()); - length_[6] = r6.length(); - storage_.setBase(6, r6.first()); - length_[7] = r7.length(); - storage_.setBase(7, r7.first()); - length_[8] = r8.length(); - storage_.setBase(8, r8.first()); - length_[9] = r9.length(); - storage_.setBase(9, r9.first()); - length_[10] = r10.length(); - storage_.setBase(10, r10.first()); - - setupStorage(10); - } - - /* - * Create a reference of another array - */ - Array(const Array& array) -#ifdef BZ_NEW_EXPRESSION_TEMPLATES - : MemoryBlockReference(), - ETBase< Array >(array) -#else - : MemoryBlockReference() -#endif - { - // NEEDS_WORK: this const_cast is a tad ugly. - reference(const_cast(array)); - } - - /* - * These constructors are used for creating interlaced arrays (see - * - */ - Array(const TinyVector& shape, - int lastExtent, const GeneralArrayStorage& storage); - //Array(const TinyVector& shape, - // int lastExtent, const GeneralArrayStorage& storage); - - /* - * These constructors make the array a view of a subportion of another - * array. If there fewer than N_rank Range arguments provided, no - * slicing is performed in the unspecified ranks. - * e.g. Array A(20,20,20); - * Array B(A, Range(5,15)); - * is equivalent to: - * Array B(A, Range(5,15), Range::all(), Range::all()); - */ - Array(Array& array, Range r0) - { - constructSubarray(array, r0); - } - - Array(Array& array, Range r0, Range r1) - { - constructSubarray(array, r0, r1); - } - - Array(Array& array, Range r0, Range r1, Range r2) - { - constructSubarray(array, r0, r1, r2); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3) - { - constructSubarray(array, r0, r1, r2, r3); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4) - { - constructSubarray(array, r0, r1, r2, r3, r4); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5, Range r6) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5, r6); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5, Range r6, Range r7) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5, r6, r7); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5, Range r6, Range r7, Range r8) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5, r6, r7, r8); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9); - } - - Array(Array& array, Range r0, Range r1, Range r2, - Range r3, Range r4, Range r5, Range r6, Range r7, Range r8, Range r9, - Range r10) - { - constructSubarray(array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10); - } - - Array(Array& array, - const RectDomain& subdomain) - { - constructSubarray(array, subdomain); - } - - /* Constructor added by Julian Cummings */ - Array(Array& array, - const StridedDomain& subdomain) - { - constructSubarray(array, subdomain); - } - - /* - * This constructor is invoked by the operator()'s which take - * a combination of integer and Range arguments. It's not intended - * for end-user use. - */ - template - Array(Array& array, R0 r0, R1 r1, R2 r2, - R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10) - { - constructSlice(array, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10); - } - - ////////////////////////////////////////////// - // Member functions - ////////////////////////////////////////////// - - const TinyVector& base() const - { return storage_.base(); } - - int base(int rank) const - { return storage_.base(rank); } - - iterator begin() - { return iterator(*this); } - - const_iterator begin() const - { return const_iterator(*this); } - - T_iterator beginFast() const - { return T_iterator(*this); } - - // Deprecated: now extractComponent(...) - template - Array chopComponent(P_numtype2 a, int compNum, - int numComponents) const - { return extractComponent(a, compNum, numComponents); } - - int cols() const - { return length_[1]; } - - int columns() const - { return length_[1]; } - - T_array copy() const; - - // data_ always refers to the point (0,0,...,0) which may - // not be in the array if the base is not zero in each rank. - // These data() routines return a pointer to the first - // element in the array (but note that it may not be - // stored first in memory if some ranks are stored descending). - - diffType dataOffset() const - { return dot(storage_.base(), stride_); } - - const T_numtype* restrict data() const - { return data_ + dataOffset(); } - - T_numtype* restrict data() - { return data_ + dataOffset(); } - - // These dataZero() routines refer to the point (0,0,...,0) - // which may not be in the array if the bases are nonzero. - - const T_numtype* restrict dataZero() const - { return data_; } - - T_numtype* restrict dataZero() - { return data_; } - - // These dataFirst() routines refer to the element in the - // array which falls first in memory. - - diffType dataFirstOffset() const - { - diffType pos = 0; - - // Used to use tinyvector expressions: - // return data_ + dot(storage_.base() - // + (1 - storage_.ascendingFlag()) * (length_ - 1), stride_); - - for (int i=0; i < N_rank; ++i) - pos += (storage_.base(i) + (1-storage_.isRankStoredAscending(i)) * - (length_(i)-1)) * stride_(i); - - return pos; - } - - const T_numtype* restrict dataFirst() const - { return data_ + dataFirstOffset(); } - - T_numtype* restrict dataFirst() - { return data_ + dataFirstOffset(); } - - int depth() const - { return length_[2]; } - - int dimensions() const - { return N_rank; } - - RectDomain domain() const - { return RectDomain(lbound(), ubound()); } - - void dumpStructureInformation(ostream& os = cout) const; - - iterator end() - { return iterator(*this,0); } - - const_iterator end() const - { return const_iterator(*this,0); } - - int extent(int rank) const - { return length_[rank]; } - - const TinyVector& extent() const - { return length_; } - - template - Array extractComponent(P_numtype2, int compNum, - int numComponents) const; - - void free() - { - T_base::changeToNullBlock(); - length_ = 0; - } - - bool isMajorRank(int rank) const - { return storage_.ordering(rank) == N_rank-1; } - bool isMinorRank(int rank) const - { return storage_.ordering(rank) != N_rank-1; } - bool isRankStoredAscending(int rank) const - { return storage_.isRankStoredAscending(rank); } - - bool isStorageContiguous() const; - - int lbound(int rank) const - { return base(rank); } - TinyVector lbound() const - { return base(); } - - int length(int rank) const - { return length_[rank]; } - const TinyVector& length() const - { return length_; } - - void makeUnique(); - - sizeType numElements() const - { return _bz_returntype::product(length_); } - - // NEEDS_WORK -- Expose the numReferences() method - // MemoryBlockReference::numReferences; - - // The storage_.ordering_ array is a list of dimensions from - // the most minor (stride 1) to major dimension. Generally, - // ordering(0) will return the dimension which has the smallest - // stride, and ordering(N_rank-1) will return the dimension with - // the largest stride. - int ordering(int storageRankIndex) const - { return storage_.ordering(storageRankIndex); } - - const TinyVector& ordering() const - { return storage_.ordering(); } - - void transposeSelf(int r0, int r1, int r2=0, - int r3=0, int r4=0, int r5=0, int r6=0, int r7=0, int r8=0, int - r9=0, int r10=0); - T_array transpose(int r0, int r1, int r2=0, - int r3=0, int r4=0, int r5=0, int r6=0, int r7=0, int r8=0, int - r9=0, int r10=0) const; - - static int rank() - { return rank_; } - - void reference(const T_array&); - void weakReference(const T_array&); - - // Added by Derrick Bass - T_array reindex(const TinyVector&); - void reindexSelf( - const TinyVector&); - - void resize(int extent); - void resize(int extent1, int extent2); - void resize(int extent1, int extent2, - int extent3); - void resize(int extent1, int extent2, - int extent3, int extent4); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6, int extent7); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6, int extent7, int extent8); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6, int extent7, int extent8, - int extent9); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6, int extent7, int extent8, - int extent9, int extent10); - void resize(int extent1, int extent2, - int extent3, int extent4, int extent5, - int extent6, int extent7, int extent8, - int extent9, int extent10, - int extent11); - - - void resize(Range r1); - void resize(Range r1, Range r2); - void resize(Range r1, Range r2, Range r3); - void resize(Range r1, Range r2, Range r3, - Range r4); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6, - Range r7); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6, - Range r7, Range r8); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6, - Range r7, Range r8, Range r9); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6, - Range r7, Range r8, Range r9, - Range r10); - void resize(Range r1, Range r2, Range r3, - Range r4, Range r5, Range r6, - Range r7, Range r8, Range r9, - Range r10, Range r11); - - void resize(const TinyVector&); - - - void resizeAndPreserve(const TinyVector&); - void resizeAndPreserve(int extent); - void resizeAndPreserve(int extent1, - int extent2); - void resizeAndPreserve(int extent1, - int extent2, int extent3); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6, int extent7); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6, int extent7, - int extent8); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6, int extent7, - int extent8, int extent9); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6, int extent7, - int extent8, int extent9, - int extent10); - void resizeAndPreserve(int extent1, - int extent2, int extent3, int extent4, - int extent5, int extent6, int extent7, - int extent8, int extent9, int extent10, - int extent11); - - // NEEDS_WORK -- resizeAndPreserve(Range,...) - // NEEDS_WORK -- resizeAndPreserve(const Domain&); - - T_array reverse(int rank); - void reverseSelf(int rank); - - int rows() const - { return length_[0]; } - - void setStorage(GeneralArrayStorage); - - void slice(int rank, Range r); - - const TinyVector& shape() const - { return length_; } - - sizeType size() const - { return numElements(); } - - /** Returns the length of the array storage. This can be larger than - the number of elements due to padding to meet alignment - requirements. If you want to extract the array data to, for - example, write it to disk, this is the size of the block - needed. \todo Is this safe if there is no block? */ - sizeType storageSize() const - { return T_base::blockLength(); } - - const TinyVector& stride() const - { return stride_; } - - diffType stride(int rank) const - { return stride_[rank]; } - - bool threadLocal(bool disableLock = true) const - { return T_base::lockReferenceCount(!disableLock); } - - int ubound(int rank) const - { return base(rank) + length_(rank) - 1; } - - TinyVector ubound() const - { - TinyVector ub; - for (int i=0; i < N_rank; ++i) - ub(i) = base(i) + extent(i) - 1; - // WAS: ub = base() + extent() - 1; - return ub; - } - - int zeroOffset() const - { return zeroOffset_; } - - /** Returns true if the array is aligned on a simd vector width. */ - bool isVectorAligned(diffType offset) const - { return simdTypes::isVectorAligned(dataFirst()+offset); }; - - ////////////////////////////////////////////// - // Debugging routines - ////////////////////////////////////////////// - - bool isInRangeForDim(int i, int d) const { - return i >= base(d) && (i - base(d)) < length_[d]; - } - - bool isInRange(int i0) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0]; - } - - bool isInRange(int i0, int i1) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1]; - } - - bool isInRange(int i0, int i1, int i2) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2]; - } - - bool isInRange(int i0, int i1, int i2, int i3) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, int i5, int i6) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5] - && i6 >= base(6) && (i6 - base(6)) < length_[6]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, - int i5, int i6, int i7) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5] - && i6 >= base(6) && (i6 - base(6)) < length_[6] - && i7 >= base(7) && (i7 - base(7)) < length_[7]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, - int i5, int i6, int i7, int i8) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5] - && i6 >= base(6) && (i6 - base(6)) < length_[6] - && i7 >= base(7) && (i7 - base(7)) < length_[7] - && i8 >= base(8) && (i8 - base(8)) < length_[8]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, - int i5, int i6, int i7, int i8, int i9) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5] - && i6 >= base(6) && (i6 - base(6)) < length_[6] - && i7 >= base(7) && (i7 - base(7)) < length_[7] - && i8 >= base(8) && (i8 - base(8)) < length_[8] - && i9 >= base(9) && (i9 - base(9)) < length_[9]; - } - - bool isInRange(int i0, int i1, int i2, int i3, int i4, - int i5, int i6, int i7, int i8, int i9, int i10) const { - return i0 >= base(0) && (i0 - base(0)) < length_[0] - && i1 >= base(1) && (i1 - base(1)) < length_[1] - && i2 >= base(2) && (i2 - base(2)) < length_[2] - && i3 >= base(3) && (i3 - base(3)) < length_[3] - && i4 >= base(4) && (i4 - base(4)) < length_[4] - && i5 >= base(5) && (i5 - base(5)) < length_[5] - && i6 >= base(6) && (i6 - base(6)) < length_[6] - && i7 >= base(7) && (i7 - base(7)) < length_[7] - && i8 >= base(8) && (i8 - base(8)) < length_[8] - && i9 >= base(9) && (i9 - base(9)) < length_[9] - && i10 >= base(10) && (i10 - base(10)) < length_[10]; - } - - bool isInRange(const T_index& index) const { - for (int i=0; i < N_rank; ++i) - if (index[i] < base(i) || (index[i] - base(i)) >= length_[i]) - return false; - - return true; - } - - bool assertInRange(const T_index& BZ_DEBUG_PARAM(index)) const { - BZPRECHECK(isInRange(index), "Array index out of range: " << index - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0)) const { - BZPRECHECK(isInRange(i0), "Array index out of range: " << i0 - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1)) const { - BZPRECHECK(isInRange(i0,i1), "Array index out of range: (" - << i0 << ", " << i1 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2)) const - { - BZPRECHECK(isInRange(i0,i1,i2), "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3), "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), - int BZ_DEBUG_PARAM(i4)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4), "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5), "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6), - "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ", " << i6 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), - int BZ_DEBUG_PARAM(i7)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7), - "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), - int BZ_DEBUG_PARAM(i8)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8), - "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7 - << ", " << i8 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), - int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9), - "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7 - << ", " << i8 << ", " << i9 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - bool assertInRange(int BZ_DEBUG_PARAM(i0), int BZ_DEBUG_PARAM(i1), - int BZ_DEBUG_PARAM(i2), int BZ_DEBUG_PARAM(i3), int BZ_DEBUG_PARAM(i4), - int BZ_DEBUG_PARAM(i5), int BZ_DEBUG_PARAM(i6), int BZ_DEBUG_PARAM(i7), - int BZ_DEBUG_PARAM(i8), int BZ_DEBUG_PARAM(i9), - int BZ_DEBUG_PARAM(i10)) const - { - BZPRECHECK(isInRange(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10), - "Array index out of range: (" - << i0 << ", " << i1 << ", " << i2 << ", " << i3 - << ", " << i4 << ", " << i5 << ", " << i6 << ", " << i7 - << ", " << i8 << ", " << i9 << ", " << i10 << ")" - << endl << "Lower bounds: " << storage_.base() << endl - << "Length: " << length_ << endl); - return true; - } - - ////////////////////////////////////////////// - // Subscripting operators - ////////////////////////////////////////////// - - template - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index); - return data_[dot(index, stride_)]; - } - - template - T_numtype& restrict operator()(const TinyVector& index) - { - assertInRange(index); - return data_[dot(index, stride_)]; - } - - const T_numtype& restrict operator()(TinyVector index) const - { - assertInRange(index[0]); - return data_[index[0] * stride_[0]]; - } - - T_numtype& operator()(TinyVector index) - { - assertInRange(index[0]); - return data_[index[0] * stride_[0]]; - } - - const T_numtype& restrict operator()(TinyVector index) const - { - assertInRange(index[0], index[1]); - return data_[index[0] * stride_[0] - + index[1] * stride_[1]]; - } - - T_numtype& operator()(TinyVector index) - { - assertInRange(index[0], index[1]); - return data_[index[0] * stride_[0] - + index[1] * stride_[1]]; - } - - const T_numtype& restrict operator()(TinyVector index) const - { - assertInRange(index[0], index[1], index[2]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2]]; - } - - T_numtype& operator()(TinyVector index) - { - assertInRange(index[0], index[1], index[2]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8], index[9]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8] + index[9] * stride_[9]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8], index[9]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8] + index[9] * stride_[9]]; - } - - const T_numtype& restrict operator()(const TinyVector& index) const - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8], index[9], - index[10]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8] + index[9] * stride_[9] - + index[10] * stride_[10]]; - } - - T_numtype& operator()(const TinyVector& index) - { - assertInRange(index[0], index[1], index[2], index[3], - index[4], index[5], index[6], index[7], index[8], index[9], - index[10]); - return data_[(index[0]) * stride_[0] - + index[1] * stride_[1] - + index[2] * stride_[2] + index[3] * stride_[3] - + index[4] * stride_[4] + index[5] * stride_[5] - + index[6] * stride_[6] + index[7] * stride_[7] - + index[8] * stride_[8] + index[9] * stride_[9] - + index[10] * stride_[10]]; - } - - const T_numtype& restrict operator()(int i0) const - { - assertInRange(i0); - return data_[(i0) * stride_[0]]; - } - - T_numtype& restrict operator()(int i0) - { - assertInRange(i0); - return data_[(i0) * stride_[0]]; - } - - const T_numtype& restrict operator()(int i0, int i1) const - { - assertInRange(i0, i1); - return data_[(i0) * stride_[0] + i1 * stride_[1]]; - } - - T_numtype& restrict operator()(int i0, int i1) - { - assertInRange(i0, i1); - return data_[(i0) * stride_[0] + i1 * stride_[1]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2) const - { - assertInRange(i0, i1, i2); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2) - { - assertInRange(i0, i1, i2); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3) const - { - assertInRange(i0, i1, i2, i3); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3) - { - assertInRange(i0, i1, i2, i3); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4) const - { - assertInRange(i0, i1, i2, i3, i4); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4) - { - assertInRange(i0, i1, i2, i3, i4); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5) const - { - assertInRange(i0, i1, i2, i3, i4, i5); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5) - { - assertInRange(i0, i1, i2, i3, i4, i5); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6) const - { - assertInRange(i0, i1, i2, i3, i4, i5, i6); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6) - { - assertInRange(i0, i1, i2, i3, i4, i5, i6); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7) const - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7) - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8) const - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8) - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8, int i9) const - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8] + i9 * stride_[9]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8, int i9) - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8] + i9 * stride_[9]]; - } - - const T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8, int i9, int i10) const - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8, - i9, i10); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8] + i9 * stride_[9] + i10 * stride_[10]]; - } - - T_numtype& restrict operator()(int i0, int i1, int i2, int i3, - int i4, int i5, int i6, int i7, int i8, int i9, int i10) - { - assertInRange(i0, i1, i2, i3, i4, i5, i6, i7, i8, - i9, i10); - return data_[(i0) * stride_[0] + i1 * stride_[1] - + i2 * stride_[2] + i3 * stride_[3] + i4 * stride_[4] - + i5 * stride_[5] + i6 * stride_[6] + i7 * stride_[7] - + i8 * stride_[8] + i9 * stride_[9] + i10 * stride_[10]]; - } - - /* - * Slicing to produce subarrays. If the number of Range arguments is - * fewer than N_rank, then missing arguments are treated like Range::all(). - */ - - T_array& noConst() const - { return const_cast(*this); } - - T_array operator()(const RectDomain& subdomain) const - { - return T_array(noConst(), subdomain); - } - - /* Operator added by Julian Cummings */ - T_array operator()(const StridedDomain& subdomain) const - { - return T_array(noConst(), subdomain); - } - - T_array operator()(Range r0) const - { - return T_array(noConst(), r0); - } - - T_array operator()(Range r0, Range r1) const - { - return T_array(noConst(), r0, r1); - } - - T_array operator()(Range r0, Range r1, Range r2) const - { - return T_array(noConst(), r0, r1, r2); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3) const - { - return T_array(noConst(), r0, r1, r2, r3); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4) const - { - return T_array(noConst(), r0, r1, r2, r3, r4); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5, Range r6) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5, r6); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5, Range r6, Range r7) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5, r6, r7); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5, Range r6, Range r7, Range r8) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5, r6, r7, r8); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5, Range r6, Range r7, Range r8, Range r9) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5, r6, r7, r8, r9); - } - - T_array operator()(Range r0, Range r1, Range r2, Range r3, Range r4, - Range r5, Range r6, Range r7, Range r8, Range r9, Range r10) const - { - return T_array(noConst(), r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10); - } - - // Allow any mixture of Range, int and Vector objects as - // operands for operator(): A(Range(3,7), 5, Range(2,4)) - - /* - * These versions of operator() allow any combination of int - * and Range operands to be used. Each int operand reduces - * the rank of the resulting array by one. - * - * e.g. Array A(20,20,20,20); - * Array B = A(Range(5,15), 3, 5, Range(8,9)); - * - * SliceInfo is a helper class defined in . - * It counts the number of Range vs. int arguments and does some - * other helpful things. - * - * Once partial specialization becomes widely implemented, these - * operators may be expanded to accept Vector arguments - * and produce ArrayPick objects. - * - * This operator() is not provided with a single argument because - * the appropriate cases exist above. - */ - -#ifdef BZ_HAVE_PARTIAL_ORDERING - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, nilArraySection(), - nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, nilArraySection(), nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, r7, nilArraySection(), nilArraySection(), - nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, r7, r8, - nilArraySection(), nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, r7, r8, r9, nilArraySection(), nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9, T10 r10) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, nilArraySection()); - } - - template - typename SliceInfo::T_slice - operator()(T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9, T10 r10, T11 r11) const - { - typedef typename SliceInfo::T_slice slice; - return slice(noConst(), r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11); - } - -#endif // BZ_HAVE_PARTIAL_ORDERING - - /* - * These versions of operator() are provided to support tensor-style - * array notation, e.g. - * - * Array A, B; - * firstIndex i; - * secondIndex j; - * thirdIndex k; - * Array C = A(i,j) * B(j,k); - */ - - template - _bz_ArrayExpr::T_expr, N0> > - operator()(IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0> > - (noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1> > - operator()(IndexPlaceholder, IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, N4> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5, N6> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5, N6> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5, N6, N7> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5, N6, N7> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5, N6, N7, N8> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5, N6, N7, N8> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5, N6, N7, N8, N9> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5, N6, N7, N8, N9> >(noConst()); - } - - template - _bz_ArrayExpr::T_expr, N0, N1, N2, N3, - N4, N5, N6, N7, N8, N9, N10> > - operator()(IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder, IndexPlaceholder, - IndexPlaceholder) const - { - return _bz_ArrayExpr::T_expr, N0, - N1, N2, N3, N4, N5, N6, N7, N8, N9, N10> >(noConst()); - } - - ////////////////////////////////////////////// - // Support for multicomponent arrays - ////////////////////////////////////////////// - - /* - * See for an explanation of the traits class - * multicomponent_traits. - */ - - Array::T_element,N_rank> - operator[](const unsigned component) { - typedef typename multicomponent_traits::T_element T_compType; - - return extractComponent(T_compType(),component, - multicomponent_traits::numComponents); - } - - const Array::T_element,N_rank> - operator[](const unsigned component) const { - typedef typename multicomponent_traits::T_element T_compType; - - return extractComponent(T_compType(),component, - multicomponent_traits::numComponents); - } - - Array::T_element,N_rank> - operator[](const int component) { - return operator[](static_cast(component)); - } - - const Array::T_element,N_rank> - operator[](const int component) const { - return operator[](static_cast(component)); - } - - ////////////////////////////////////////////// - // Indirection - ////////////////////////////////////////////// - - template - IndirectArray - operator[](const T_indexContainer& index) - { - return IndirectArray(*this, - const_cast(index)); - } - - ////////////////////////////////////////////// - // Assignment Operators - ////////////////////////////////////////////// - - /** \name Assignment operators. \todo Index placeholder - operand. \todo Random operand. @{ */ - - /** - Scalar operand assignment. \todo Need a precondition check on - isStorageContiguous when operator, is used. \todo We should do - bounds checking, right now we will buffer overrun if the number - of initializers in the list is larger than numElements. */ - ListInitializationSwitch operator=(T_numtype x) - { - return ListInitializationSwitch(*this, x); - } - - T_array& initialize(T_numtype); - - // Was: - // T_array& operator=(T_numtype); - -#ifdef BZ_NEW_EXPRESSION_TEMPLATES - - // we need this because we can't use default assignment op so it - // must be overridden - T_array& operator=(const Array&); - - // we can't define a generic template for the assignment operator - // because it will cause the list initialization assignment above to - // not work when implict conversions to T_numtype are necessary. - - //template T_array& operator=(const T&); - template T_array& operator=(const ETBase&); - - T_array& operator+=(const T_array&); - T_array& operator-=(const T_array&); - T_array& operator*=(const T_array&); - T_array& operator/=(const T_array&); - T_array& operator%=(const T_array&); - T_array& operator^=(const T_array&); - T_array& operator&=(const T_array&); - T_array& operator|=(const T_array&); - T_array& operator>>=(const T_array&); - T_array& operator<<=(const T_array&); - - T_array& operator+=(const T_numtype&); - T_array& operator-=(const T_numtype&); - T_array& operator*=(const T_numtype&); - T_array& operator/=(const T_numtype&); - T_array& operator%=(const T_numtype&); - T_array& operator^=(const T_numtype&); - T_array& operator&=(const T_numtype&); - T_array& operator|=(const T_numtype&); - T_array& operator>>=(const T_numtype&); - T_array& operator<<=(const T_numtype&); - - template T_array& operator+=(const ETBase&); - template T_array& operator-=(const ETBase&); - template T_array& operator*=(const ETBase&); - template T_array& operator/=(const ETBase&); - template T_array& operator%=(const ETBase&); - template T_array& operator^=(const ETBase&); - template T_array& operator&=(const ETBase&); - template T_array& operator|=(const ETBase&); - template T_array& operator>>=(const ETBase&); - template T_array& operator<<=(const ETBase&); - -#else - T_array& operator+=(T_numtype); - T_array& operator-=(T_numtype); - T_array& operator*=(T_numtype); - T_array& operator/=(T_numtype); - T_array& operator%=(T_numtype); - T_array& operator^=(T_numtype); - T_array& operator&=(T_numtype); - T_array& operator|=(T_numtype); - T_array& operator>>=(T_numtype); - T_array& operator<<=(T_numtype); - - // Array operands - T_array& operator=(const Array&); - - template - T_array& operator=(const Array&); - template - T_array& operator+=(const Array&); - template - T_array& operator-=(const Array&); - template - T_array& operator*=(const Array&); - template - T_array& operator/=(const Array&); - template - T_array& operator%=(const Array&); - template - T_array& operator^=(const Array&); - template - T_array& operator&=(const Array&); - template - T_array& operator|=(const Array&); - template - T_array& operator>>=(const Array&); - template - T_array& operator<<=(const Array&); - - // Array expression operands - template - inline T_array& operator=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator+=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator-=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator*=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator/=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator%=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator^=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator&=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator|=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator>>=(BZ_ETPARM(_bz_ArrayExpr) expr); - template - inline T_array& operator<<=(BZ_ETPARM(_bz_ArrayExpr) expr); - - /// @} - -#endif - -public: - - T_numtype* restrict getInitializationIterator() { return dataFirst(); } -//iterator getInitializationIterator() { return begin(); } - - bool canCollapse(int outerRank, int innerRank) const { -#ifdef BZ_DEBUG_TRAVERSE - BZ_DEBUG_MESSAGE("stride(" << innerRank << ")=" << stride(innerRank) - << ", extent()=" << extent(innerRank) << ", stride(outerRank)=" - << stride(outerRank)); -#endif - return (stride(innerRank) * extent(innerRank) == stride(outerRank)); - } - -protected: - ////////////////////////////////////////////// - // Implementation routines - ////////////////////////////////////////////// - - _bz_inline2 void computeStrides(); - _bz_inline2 void setupStorage(int rank); - void constructSubarray(Array& array, - const RectDomain&); - void constructSubarray(Array& array, - const StridedDomain&); - void constructSubarray(Array& array, Range r0); - void constructSubarray(Array& array, Range r0, Range r1); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5, Range r6); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, - Range r7); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, - Range r7, Range r8); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, - Range r7, Range r8, Range r9); - void constructSubarray(Array& array, Range r0, - Range r1, Range r2, Range r3, Range r4, Range r5, Range r6, - Range r7, Range r8, Range r9, Range r10); - - void calculateZeroOffset(); - - template - void constructSlice(Array& array, R0 r0, R1 r1, R2 r2, - R3 r3, R4 r4, R5 r5, R6 r6, R7 r7, R8 r8, R9 r9, R10 r10); - - template - void slice(int& setRank, Range r, Array& array, - TinyVector& rankMap, int sourceRank); - - template - void slice(int& setRank, int i, Array& array, - TinyVector& rankMap, int sourceRank); - - template - void slice(int&, nilArraySection, Array&, - TinyVector&, int) - { } - - void doTranspose(int destRank, int sourceRank, T_array& array); - -private: - // serialization support -#ifdef BZ_HAVE_BOOST_SERIALIZATION - friend class boost::serialization::access; - - template - void serialize(T_arch& ar, const unsigned int version) { - ar & boost::serialization::base_object >(*this); - ar & length_; - ar & storage_; - ar & stride_; - ar & zeroOffset_; - }; -#endif - -protected: - ////////////////////////////////////////////// - // Data members - ////////////////////////////////////////////// - - // NB: adding new data members may require changes to ctors, reference() - - /* - * For a description of the storage_ members, see the comments for class - * GeneralArrayStorage above. - * - * length_[] contains the extent of each rank. E.g. a 10x20x30 array - * would have length_ = { 10, 20, 30}. - * stride_[] contains the stride to move to the next element along each - * rank. - * zeroOffset_ is the distance from the first element in the array - * to the point (0,0,...,0). If base_ is zero and all ranks are - * stored ascending, then zeroOffset_ is zero. This value - * is needed because to speed up indexing, the data_ member - * (inherited from MemoryBlockReference) always refers to - * (0,0,...,0). - */ - GeneralArrayStorage storage_; - TinyVector length_; - TinyVector stride_; - diffType zeroOffset_; -}; - - -/* - * Global Functions - */ - -template -ostream& operator<<(ostream&, const Array&); - -template -ostream& operator<<(ostream&, const Array&); - -template -istream& operator>>(istream& is, Array& x); - -template -void swap(Array& a,Array& b) { - Array c(a); - a.reference(b); - b.reference(c); -} - -template -void find(Array,1>& indices, - const _bz_ArrayExpr& expr) { - find(indices, - static_cast< Array >(expr)); -} - -template -void find(Array,1>& indices, - const Array& exprVals) { - indices.resize(exprVals.size()); - typename Array::const_iterator it, end = exprVals.end(); - int j=0; - for (it = exprVals.begin(); it != end; ++it) - if (*it) - indices(j++) = it.position(); - if (j) - indices.resizeAndPreserve(j); - else - indices.free(); - return; -} - - -BZ_NAMESPACE_END - -/* - * Removed the "kitchen-sink inclusion" here because it made - * dependencies very difficult to figure out. - */ -#include -#include - - -#endif // BZ_ARRAY_H diff --git a/xios_2311_src/extern/blitz/blitz/array.cc b/xios_2311_src/extern/blitz/blitz/array.cc deleted file mode 100644 index 2826a959bf6f934372901019c6f2850131eba26b..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array.cc +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BZ_ARRAY_CC -#define BZ_ARRAY_CC - -// not-quite-declarations-of-array files - -#include // Array iterators -#include // Fast Array iterators (for et) -#include // ET type functions -#include // Array expression objects -#include // range objects -#include // Member functions -#include // Assignment operators -#include // Output formatting -#include // Allocation of interlaced arrays -#include // Array resize, resizeAndPreserve -#include // Slicing and subarrays -#include // Cycling arrays -#include // Special support for complex arrays -#include // Expression templates -#include // Array reduction expression templates -#include // Zipping multicomponent types -#include // where(X,Y,Z) -#include // Indirection -#include // Stencil objects -#include // TinyMatrix implementations -#endif diff --git a/xios_2311_src/extern/blitz/blitz/array.h b/xios_2311_src/extern/blitz/blitz/array.h deleted file mode 100644 index 7be3e651570138a6619154d8a29374471ca277ba..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array.h +++ /dev/null @@ -1,40 +0,0 @@ -/*************************************************************************** - * blitz/array.h Minimal include version of Array - * - * $Id$ - * - * Copyright (C) 1997-2011 Todd Veldhuizen - * - * This file is a part of Blitz. - * - * Blitz is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation, either version 3 - * of the License, or (at your option) any later version. - * - * Blitz is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Blitz. If not, see . - * - * Suggestions: blitz-devel@lists.sourceforge.net - * Bugs: blitz-support@lists.sourceforge.net - * - * For more information, please see the Blitz++ Home Page: - * https://sourceforge.net/projects/blitz/ - * - ***************************************************************************/ - -#ifndef BZ_ARRAY_ONLY_H -#define BZ_ARRAY_ONLY_H - -// See comments in for an explanation of the new -// headers arrangement. - -#include - -#endif // BZ_ARRAY_ONLY_H - diff --git a/xios_2311_src/extern/blitz/blitz/array/.cvsignore b/xios_2311_src/extern/blitz/blitz/array/.cvsignore deleted file mode 100644 index 7e1f9898b9ee51c74f74963cda0cd2cfc43a1b87..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile -Makefile.in -bops.cc -uops.cc diff --git a/xios_2311_src/extern/blitz/blitz/array/Makefile b/xios_2311_src/extern/blitz/blitz/array/Makefile deleted file mode 100644 index 41263a055e1ba4f41595d496f345b5ac40f50fbd..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/Makefile +++ /dev/null @@ -1,688 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# blitz/array/Makefile. Generated from Makefile.in by configure. - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - - - -# -# Written by Patrick Guio -# - - -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/blitz -pkgincludedir = $(includedir)/blitz -pkglibdir = $(libdir)/blitz -pkglibexecdir = $(libexecdir)/blitz -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = x86_64-unknown-linux-gnu -host_triplet = x86_64-unknown-linux-gnu -target_triplet = x86_64-unknown-linux-gnu -subdir = blitz/array -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_cxx_features.m4 \ - $(top_srcdir)/m4/ac_compiler_specific_header.m4 \ - $(top_srcdir)/m4/ac_compilers_64bits.m4 \ - $(top_srcdir)/m4/ac_cxx_alignment_directive.m4 \ - $(top_srcdir)/m4/ac_cxx_bool.m4 \ - $(top_srcdir)/m4/ac_cxx_complex_math_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_const_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_default_template_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_dynamic_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_debug.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_optimize.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations_with_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_exceptions.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit_template_function_qualification.m4 \ - $(top_srcdir)/m4/ac_cxx_flags_preset.m4 \ - $(top_srcdir)/m4/ac_cxx_full_specialization_syntax.m4 \ - $(top_srcdir)/m4/ac_cxx_function_nontype_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_general.m4 \ - $(top_srcdir)/m4/ac_cxx_have_climits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_fcns.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math1.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math2.m4 \ - $(top_srcdir)/m4/ac_cxx_have_cstring.m4 \ - $(top_srcdir)/m4/ac_cxx_have_ieee_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_numeric_limits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_rusage.m4 \ - $(top_srcdir)/m4/ac_cxx_have_std.m4 \ - $(top_srcdir)/m4/ac_cxx_have_stl.m4 \ - $(top_srcdir)/m4/ac_cxx_have_system_v_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_valarray.m4 \ - $(top_srcdir)/m4/ac_cxx_isnan_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_keywords.m4 \ - $(top_srcdir)/m4/ac_cxx_math_absint_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_math_fn_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_member_constants.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates_outside_class.m4 \ - $(top_srcdir)/m4/ac_cxx_mutable.m4 \ - $(top_srcdir)/m4/ac_cxx_namespaces.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict_egcs.m4 \ - $(top_srcdir)/m4/ac_cxx_old_for_scoping.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_ordering.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_specialization.m4 \ - $(top_srcdir)/m4/ac_cxx_reinterpret_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_rtti.m4 \ - $(top_srcdir)/m4/ac_cxx_standard_library.m4 \ - $(top_srcdir)/m4/ac_cxx_static_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_template_keyword_qualifier.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_base_class.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_return_type.m4 \ - $(top_srcdir)/m4/ac_cxx_template_scoped_argument_matching.m4 \ - $(top_srcdir)/m4/ac_cxx_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_as_template_arguments.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_features.m4 \ - $(top_srcdir)/m4/ac_cxx_type_casts.m4 \ - $(top_srcdir)/m4/ac_cxx_type_promotion.m4 \ - $(top_srcdir)/m4/ac_cxx_typename.m4 \ - $(top_srcdir)/m4/ac_cxx_use_numtrait.m4 \ - $(top_srcdir)/m4/ac_env.m4 \ - $(top_srcdir)/m4/ac_fortran_flags_preset.m4 \ - $(top_srcdir)/m4/ac_info.m4 $(top_srcdir)/m4/ac_lib_blas.m4 \ - $(top_srcdir)/m4/ac_prog_doxygen.m4 \ - $(top_srcdir)/m4/ax_boost_base.m4 \ - $(top_srcdir)/m4/ax_boost_serialization.m4 \ - $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ - $(top_srcdir)/m4/ax_dirname.m4 \ - $(top_srcdir)/m4/ax_prefix_config_h.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(array_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/blitz/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_$(V)) -am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(arraydir)" -HEADERS = $(array_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing aclocal-1.15 -AMTAR = $${TAR-tar} -AM_DEFAULT_VERBOSITY = 1 -AR = ar -AR_FLAGS = -cru -AUTOCONF = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing autoconf -AUTOHEADER = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing autoheader -AUTOMAKE = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing automake-1.15 -AWK = gawk -BLASLIB = -BOOST_CPPFLAGS = -BOOST_LDFLAGS = -BOOST_SERIALIZATION_LIB = -CC = gcc -CCDEPMODE = depmode=gcc3 -CFLAGS = -g -O2 -COMPILER_SPECIFIC_HEADER = intel/bzconfig.h -CPP = gcc -E -CPPFLAGS = -CXX = icc -CXXCPP = icc -E -CXXDEPMODE = depmode=gcc3 -CXXFCFLAG = -DFORTRAN_90 -DBZ_FORTRAN_SYMBOLS_WITH_TRAILING_UNDERSCORES -CXXFFLAGS = -DBZ_FORTRAN_SYMBOLS_WITH_TRAILING_UNDERSCORES -CXXFLAGS = -ansi -CXX_DEBUG_FLAGS = -g -O0 -C -DBZ_DEBUG -CXX_LIBS = -CXX_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -ansi_alias -CXX_PROFIL_FLAGS = -pg -CYGPATH_W = echo -DATE = Fri Sep 7 15:06:08 CEST 2018 -DEFS = -DHAVE_CONFIG_H -DEPDIR = .deps -DLLTOOL = false -DOT = -DOXYGEN = -DSYMUTIL = -DUMPBIN = -ECHO_C = -ECHO_N = -n -ECHO_T = -EGREP = /bin/grep -E -EXEEXT = -F77 = ifort -F77_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -pad -unroll -fno-alias -safe_cray_ptr -FC = ifort -FCFLAGS = -FR -FCFLAGS_f90 = -FCLIBS = -L/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -FC_OPTIMIZE_FLAGS = -O3 -Zp16 -ip -pad -unroll -fno-alias -safe_cray_ptr -FFLAGS = -FGREP = /bin/grep -F -FLIBS = -L/opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib -lifport -lifcore -limf -lsvml -lm -lipgo -lirc -lpthread -lirc_s -ldl -GREP = /bin/grep -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 -INSTALL_PROGRAM = ${INSTALL} -INSTALL_SCRIPT = ${INSTALL} -INSTALL_STRIP_PROGRAM = $(install_sh) -c -s -LD = /usr/bin/ld -m elf_x86_64 -LDFLAGS = -LIBOBJS = -LIBS = -LIBTOOL = $(SHELL) $(top_builddir)/libtool -LIPO = -LN_S = ln -s -LTLIBOBJS = -MAINT = # -MAKEINFO = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/missing makeinfo -MANIFEST_TOOL = : -MKDIR_P = /bin/mkdir -p -NM = /usr/bin/nm -B -NMEDIT = -OBJDUMP = objdump -OBJEXT = o -OS = Linux curie90 2.6.32-696.30.1.el6.Bull.140.x86_64 #1 SMP Thu May 31 01:41:35 CEST 2018 x86_64 x86_64 x86_64 GNU/Linux -OTOOL = -OTOOL64 = -PACKAGE = blitz -PACKAGE_BUGREPORT = blitz-support@lists.sourceforge.net -PACKAGE_NAME = blitz -PACKAGE_STRING = blitz 0.10 -PACKAGE_TARNAME = blitz -PACKAGE_URL = -PACKAGE_VERSION = 0.10 -PATH_SEPARATOR = : -RANLIB = ranlib -SED = /bin/sed -SET_MAKE = -SHELL = /bin/sh -STRIP = strip -TEXI2HTML = -VERSION = 0.10 -abs_builddir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/blitz/array -abs_srcdir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/blitz/array -abs_top_builddir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1 -abs_top_srcdir = /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1 -ac_ct_AR = ar -ac_ct_CC = gcc -ac_ct_CXX = -ac_ct_DUMPBIN = -ac_ct_F77 = ifort -ac_ct_FC = ifort -am__include = include -am__leading_dot = . -am__quote = -am__tar = $${TAR-tar} chof - "$$tardir" -am__untar = $${TAR-tar} xf - -bindir = ${exec_prefix}/bin -build = x86_64-unknown-linux-gnu -build_alias = -build_cpu = x86_64 -build_os = linux-gnu -build_vendor = unknown -builddir = . -datadir = ${datarootdir} -datarootdir = ${prefix}/share -docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} -dvidir = ${docdir} -enable_dot = no -enable_html_docs = no -enable_latex_docs = no -exec_prefix = ${prefix} -host = x86_64-unknown-linux-gnu -host_alias = -host_cpu = x86_64 -host_os = linux-gnu -host_vendor = unknown -htmldir = ${docdir} -includedir = ${prefix}/include -infodir = ${datarootdir}/info -install_sh = ${SHELL} /ccc/cont003/home/gencmip6/abramkiv/blitz-1.0.1/config/install-sh -libdir = ${exec_prefix}/lib -libexecdir = ${exec_prefix}/libexec -localedir = ${datarootdir}/locale -localstatedir = ${prefix}/var -mandir = ${datarootdir}/man -mkdir_p = $(MKDIR_P) -oldincludedir = /usr/include -pdfdir = ${docdir} -pkgconfig_libdir = ${libdir}/pkgconfig -pkgconfig_libfile = blitz.pc -prefix = /usr/local -program_transform_name = s,x,x, -psdir = ${docdir} -sbindir = ${exec_prefix}/sbin -sharedstatedir = ${prefix}/com -srcdir = . -sysconfdir = ${prefix}/etc -target = x86_64-unknown-linux-gnu -target_alias = -target_cpu = x86_64 -target_os = linux-gnu -target_vendor = unknown -top_build_prefix = ../../ -top_builddir = ../.. -top_srcdir = ../.. -valgrind = yes -arraydir = $(includedir)/blitz/array -generatedir = ../generate -genheaders = stencil-classes.cc -#bops.cc uops.cc -array_HEADERS = asexpr.h asexpr.cc cartesian.h cgsolve.h complex.cc \ -convolve.cc convolve.h cycle.cc domain.h et.h expr.h expr.cc \ -fastiter.h funcs.h functorExpr.h geometry.h indirect.h interlace.cc \ -io.cc iter.h map.h methods.cc misc.cc multi.h newet-macros.h newet.h \ -ops.cc ops.h reduce.cc reduce.h resize.cc shape.h slice.h slicing.cc \ -stencil-et.h stencil-et-macros.h stencilops.h stencils.cc stencils.h \ -storage.h where.h zip.h $(genheaders) - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign blitz/array/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign blitz/array/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: # $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): # $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-arrayHEADERS: $(array_HEADERS) - @$(NORMAL_INSTALL) - @list='$(array_HEADERS)'; test -n "$(arraydir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(arraydir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(arraydir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(arraydir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(arraydir)" || exit $$?; \ - done - -uninstall-arrayHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(array_HEADERS)'; test -n "$(arraydir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(arraydir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(arraydir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-arrayHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-arrayHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-local cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-libtool distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-arrayHEADERS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-arrayHEADERS - -.PRECIOUS: Makefile - - -clean-local: - -rm -rf $(genheaders) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/xios_2311_src/extern/blitz/blitz/array/Makefile.am b/xios_2311_src/extern/blitz/blitz/array/Makefile.am deleted file mode 100644 index 84d9910afe148205298293ce8fe45eef8f34c0c6..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# -# Written by Patrick Guio -# - -arraydir = $(includedir)/blitz/array -generatedir = ../generate - -genheaders = stencil-classes.cc -#bops.cc uops.cc - -array_HEADERS = asexpr.h asexpr.cc cartesian.h cgsolve.h complex.cc \ -convolve.cc convolve.h cycle.cc domain.h et.h expr.h expr.cc \ -fastiter.h funcs.h functorExpr.h geometry.h indirect.h interlace.cc \ -io.cc iter.h map.h methods.cc misc.cc multi.h newet-macros.h newet.h \ -ops.cc ops.h reduce.cc reduce.h resize.cc shape.h slice.h slicing.cc \ -stencil-et.h stencil-et-macros.h stencilops.h stencils.cc stencils.h \ -storage.h where.h zip.h $(genheaders) - - -clean-local: - -rm -rf $(genheaders) diff --git a/xios_2311_src/extern/blitz/blitz/array/Makefile.in b/xios_2311_src/extern/blitz/blitz/array/Makefile.in deleted file mode 100644 index 53b820ca17437f0a927f9b3c881b5e91a7eaa940..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/Makefile.in +++ /dev/null @@ -1,688 +0,0 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2014 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# -# Written by Patrick Guio -# - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -target_triplet = @target@ -subdir = blitz/array -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_cxx_features.m4 \ - $(top_srcdir)/m4/ac_compiler_specific_header.m4 \ - $(top_srcdir)/m4/ac_compilers_64bits.m4 \ - $(top_srcdir)/m4/ac_cxx_alignment_directive.m4 \ - $(top_srcdir)/m4/ac_cxx_bool.m4 \ - $(top_srcdir)/m4/ac_cxx_complex_math_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_const_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_default_template_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_dynamic_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_debug.m4 \ - $(top_srcdir)/m4/ac_cxx_enable_optimize.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations.m4 \ - $(top_srcdir)/m4/ac_cxx_enum_computations_with_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_exceptions.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit.m4 \ - $(top_srcdir)/m4/ac_cxx_explicit_template_function_qualification.m4 \ - $(top_srcdir)/m4/ac_cxx_flags_preset.m4 \ - $(top_srcdir)/m4/ac_cxx_full_specialization_syntax.m4 \ - $(top_srcdir)/m4/ac_cxx_function_nontype_parameters.m4 \ - $(top_srcdir)/m4/ac_cxx_general.m4 \ - $(top_srcdir)/m4/ac_cxx_have_climits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_fcns.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math1.m4 \ - $(top_srcdir)/m4/ac_cxx_have_complex_math2.m4 \ - $(top_srcdir)/m4/ac_cxx_have_cstring.m4 \ - $(top_srcdir)/m4/ac_cxx_have_ieee_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_numeric_limits.m4 \ - $(top_srcdir)/m4/ac_cxx_have_rusage.m4 \ - $(top_srcdir)/m4/ac_cxx_have_std.m4 \ - $(top_srcdir)/m4/ac_cxx_have_stl.m4 \ - $(top_srcdir)/m4/ac_cxx_have_system_v_math.m4 \ - $(top_srcdir)/m4/ac_cxx_have_valarray.m4 \ - $(top_srcdir)/m4/ac_cxx_isnan_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_keywords.m4 \ - $(top_srcdir)/m4/ac_cxx_math_absint_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_math_fn_in_namespace_std.m4 \ - $(top_srcdir)/m4/ac_cxx_member_constants.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_member_templates_outside_class.m4 \ - $(top_srcdir)/m4/ac_cxx_mutable.m4 \ - $(top_srcdir)/m4/ac_cxx_namespaces.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict.m4 \ - $(top_srcdir)/m4/ac_cxx_nceg_restrict_egcs.m4 \ - $(top_srcdir)/m4/ac_cxx_old_for_scoping.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_ordering.m4 \ - $(top_srcdir)/m4/ac_cxx_partial_specialization.m4 \ - $(top_srcdir)/m4/ac_cxx_reinterpret_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_rtti.m4 \ - $(top_srcdir)/m4/ac_cxx_standard_library.m4 \ - $(top_srcdir)/m4/ac_cxx_static_cast.m4 \ - $(top_srcdir)/m4/ac_cxx_template_keyword_qualifier.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_base_class.m4 \ - $(top_srcdir)/m4/ac_cxx_template_qualified_return_type.m4 \ - $(top_srcdir)/m4/ac_cxx_template_scoped_argument_matching.m4 \ - $(top_srcdir)/m4/ac_cxx_templates.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_as_template_arguments.m4 \ - $(top_srcdir)/m4/ac_cxx_templates_features.m4 \ - $(top_srcdir)/m4/ac_cxx_type_casts.m4 \ - $(top_srcdir)/m4/ac_cxx_type_promotion.m4 \ - $(top_srcdir)/m4/ac_cxx_typename.m4 \ - $(top_srcdir)/m4/ac_cxx_use_numtrait.m4 \ - $(top_srcdir)/m4/ac_env.m4 \ - $(top_srcdir)/m4/ac_fortran_flags_preset.m4 \ - $(top_srcdir)/m4/ac_info.m4 $(top_srcdir)/m4/ac_lib_blas.m4 \ - $(top_srcdir)/m4/ac_prog_doxygen.m4 \ - $(top_srcdir)/m4/ax_boost_base.m4 \ - $(top_srcdir)/m4/ax_boost_serialization.m4 \ - $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ - $(top_srcdir)/m4/ax_dirname.m4 \ - $(top_srcdir)/m4/ax_prefix_config_h.m4 \ - $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ - $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(array_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/blitz/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(arraydir)" -HEADERS = $(array_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AR_FLAGS = @AR_FLAGS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLASLIB = @BLASLIB@ -BOOST_CPPFLAGS = @BOOST_CPPFLAGS@ -BOOST_LDFLAGS = @BOOST_LDFLAGS@ -BOOST_SERIALIZATION_LIB = @BOOST_SERIALIZATION_LIB@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -COMPILER_SPECIFIC_HEADER = @COMPILER_SPECIFIC_HEADER@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFCFLAG = @CXXFCFLAG@ -CXXFFLAGS = @CXXFFLAGS@ -CXXFLAGS = @CXXFLAGS@ -CXX_DEBUG_FLAGS = @CXX_DEBUG_FLAGS@ -CXX_LIBS = @CXX_LIBS@ -CXX_OPTIMIZE_FLAGS = @CXX_OPTIMIZE_FLAGS@ -CXX_PROFIL_FLAGS = @CXX_PROFIL_FLAGS@ -CYGPATH_W = @CYGPATH_W@ -DATE = @DATE@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DOT = @DOT@ -DOXYGEN = @DOXYGEN@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -F77 = @F77@ -F77_OPTIMIZE_FLAGS = @F77_OPTIMIZE_FLAGS@ -FC = @FC@ -FCFLAGS = @FCFLAGS@ -FCFLAGS_f90 = @FCFLAGS_f90@ -FCLIBS = @FCLIBS@ -FC_OPTIMIZE_FLAGS = @FC_OPTIMIZE_FLAGS@ -FFLAGS = @FFLAGS@ -FGREP = @FGREP@ -FLIBS = @FLIBS@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OS = @OS@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TEXI2HTML = @TEXI2HTML@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_FC = @ac_ct_FC@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -enable_dot = @enable_dot@ -enable_html_docs = @enable_html_docs@ -enable_latex_docs = @enable_latex_docs@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_libdir = @pkgconfig_libdir@ -pkgconfig_libfile = @pkgconfig_libfile@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target = @target@ -target_alias = @target_alias@ -target_cpu = @target_cpu@ -target_os = @target_os@ -target_vendor = @target_vendor@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -valgrind = @valgrind@ -arraydir = $(includedir)/blitz/array -generatedir = ../generate -genheaders = stencil-classes.cc -#bops.cc uops.cc -array_HEADERS = asexpr.h asexpr.cc cartesian.h cgsolve.h complex.cc \ -convolve.cc convolve.h cycle.cc domain.h et.h expr.h expr.cc \ -fastiter.h funcs.h functorExpr.h geometry.h indirect.h interlace.cc \ -io.cc iter.h map.h methods.cc misc.cc multi.h newet-macros.h newet.h \ -ops.cc ops.h reduce.cc reduce.h resize.cc shape.h slice.h slicing.cc \ -stencil-et.h stencil-et-macros.h stencilops.h stencils.cc stencils.h \ -storage.h where.h zip.h $(genheaders) - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign blitz/array/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign blitz/array/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-arrayHEADERS: $(array_HEADERS) - @$(NORMAL_INSTALL) - @list='$(array_HEADERS)'; test -n "$(arraydir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(arraydir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(arraydir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(arraydir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(arraydir)" || exit $$?; \ - done - -uninstall-arrayHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(array_HEADERS)'; test -n "$(arraydir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(arraydir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(arraydir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool clean-local mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-arrayHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-arrayHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-local cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-libtool distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-arrayHEADERS install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-arrayHEADERS - -.PRECIOUS: Makefile - - -clean-local: - -rm -rf $(genheaders) - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/xios_2311_src/extern/blitz/blitz/array/asexpr.cc b/xios_2311_src/extern/blitz/blitz/array/asexpr.cc deleted file mode 100644 index be267ca18a92eb6b387e9532cb53a5178d6e9de8..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/asexpr.cc +++ /dev/null @@ -1,91 +0,0 @@ -// -*- C++ -*- -/*************************************************************************** - * blitz/array/asexpr.h Declaration of the asExpr helper functions - * - * $Id$ - * - * Copyright (C) 1997-2011 Todd Veldhuizen - * - * This file is a part of Blitz. - * - * Blitz is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation, either version 3 - * of the License, or (at your option) any later version. - * - * Blitz is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Blitz. If not, see . - * - * Suggestions: blitz-devel@lists.sourceforge.net - * Bugs: blitz-support@lists.sourceforge.net - * - * For more information, please see the Blitz++ Home Page: - * https://sourceforge.net/projects/blitz/ - * - ***************************************************************************/ -#ifndef BZ_ASEXPR_CC -#define BZ_ASEXPR_CC - -#include -#include -#include -#include -#include - -// implementations of asexpr functions. - -BZ_NAMESPACE(blitz) - -// default to scalar -template -_bz_typename asExpr::T_expr asExpr::getExpr(const T& x) -{ return T_expr(x); } - -// expression template term just returns itself -template -const _bz_typename asExpr<_bz_ArrayExpr >::T_expr& -asExpr<_bz_ArrayExpr >::getExpr(const T_expr& x) -{ return x; } - -// array operand returns iterator -template -_bz_typename asExpr >::T_expr -asExpr >::getExpr(const Array& x) -{ return x.beginFast(); } - -// tinyvector operand returns iterator -template -_bz_typename asExpr >::T_expr -asExpr >::getExpr(const TinyVector& x) -{ return x.beginFast(); } - -// tinymatrix operands returns iterator -template -_bz_typename asExpr >::T_expr -asExpr >::getExpr(const TinyMatrix& x) -{ return x.beginFast(); } - -// Index placeholder returns itself -template -_bz_typename asExpr >::T_expr -asExpr >::getExpr(const T_expr& x) - { return x; } - -// the levi-civita symbol -inline asExpr::T_expr -asExpr::getExpr(T_expr x) -{ return T_expr(x); } - -// Range -inline asExpr::T_expr -asExpr::getExpr(T_expr x) -{ return T_expr(x); } - -BZ_NAMESPACE_END - -#endif diff --git a/xios_2311_src/extern/blitz/blitz/array/asexpr.h b/xios_2311_src/extern/blitz/blitz/array/asexpr.h deleted file mode 100644 index b0c3c049f7fd975dc20eacf431f67c0346bfc17e..0000000000000000000000000000000000000000 --- a/xios_2311_src/extern/blitz/blitz/array/asexpr.h +++ /dev/null @@ -1,304 +0,0 @@ -// -*- C++ -*- -/*************************************************************************** - * blitz/array/asexpr.h Declaration of the asExpr helper functions - * - * $Id$ - * - * Copyright (C) 1997-2011 Todd Veldhuizen - * - * This file is a part of Blitz. - * - * Blitz is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation, either version 3 - * of the License, or (at your option) any later version. - * - * Blitz is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Blitz. If not, see . - * - * Suggestions: blitz-devel@lists.sourceforge.net - * Bugs: blitz-support@lists.sourceforge.net - * - * For more information, please see the Blitz++ Home Page: - * https://sourceforge.net/projects/blitz/ - * - ***************************************************************************/ -#ifndef BZ_ASEXPR_H -#define BZ_ASEXPR_H - -#include -#include - -BZ_NAMESPACE(blitz) - -// The traits class asExpr converts arbitrary things to -// expression templatable operands. - -// Default to scalar. -template -struct asExpr { - typedef _bz_ArrayExpr<_bz_ArrayExprConstant > T_expr; - static T_expr getExpr(const T& x); -}; - -// Already an expression template term -template -struct asExpr<_bz_ArrayExpr > { - typedef _bz_ArrayExpr T_expr; - static const T_expr& getExpr(const T_expr& x); -}; - -// Specialization of asExpr for array operands -// why doesn't it wrap iterators in an ArrayExpr? -template -struct asExpr > { - //typedef FastArrayIterator T_expr; - typedef _bz_ArrayExpr > T_expr; - static T_expr getExpr(const Array& x); -}; - -// Specialization of asExpr for tinyvector operands -template -struct asExpr > { - typedef _bz_ArrayExpr > T_expr; - static T_expr getExpr(const TinyVector& x); -}; - -// Specialization of asExpr for tinymatrix operands -template -struct asExpr > { - typedef _bz_ArrayExpr > T_expr; - static T_expr getExpr(const TinyMatrix& x); -}; - -// Index placeholder -template -struct asExpr > { - // typedef _bz_ArrayExpr > T_expr; - typedef _bz_ArrayExpr > T_expr; - static T_expr getExpr(const T_expr& x); -}; - -// the levi-civita symbol -template <> -struct asExpr { - typedef _bz_ArrayExpr T_expr; - static T_expr getExpr(T_expr x); -}; - -// Range -template <> -struct asExpr { - typedef _bz_ArrayExpr T_expr; - static T_expr getExpr(T_expr x); -}; - - -// traits class that transforms ETBase subclasses into the -// ET<>-wrapped superclass and corresponding expression, but unlike -// the asExpr class it leaves POD types alone. This is necessary so -// operators on multicomponent arrays can resolve properly. -template -struct asET { - typedef T T_wrapped; - typedef T T_expr; -}; -template -struct asET > { - typedef ETBase::T_expr> T_wrapped; - typedef typename asExpr::T_expr T_expr; -}; -template -struct asET > { - typedef ETBase >::T_expr> T_wrapped; - typedef typename asExpr >::T_expr T_expr; -}; -template -struct asET > { - typedef ETBase >::T_expr> T_wrapped; - typedef typename asExpr >::T_expr T_expr; -}; -template -struct asET > { - typedef ETBase >::T_expr> T_wrapped; - typedef typename asExpr >::T_expr T_expr; -}; - -// traits class that unwraps an ETBase type, otherwise leaves it untouched. -template -struct unwrapET { - typedef T T_unwrapped; -}; -template -struct unwrapET > { - typedef T T_unwrapped; -}; - -// traits classes that are used to switch between an ET type or an -// unknown type. If the supplied type T is an ET type, T_selected will -// be T_ifET, otherwise T. -template -struct selectET { - typedef T_ifnotET T_selected; -}; -template -struct selectET, T_ifnotET, T_ifET> { - typedef ETBase T_selected; -}; - -// for binary exprs, it is more complicated. if T1 or T2 are an ET, -// T_ifET is selected, otherwise T_ifnotET. -template -struct selectET2 { - typedef T_ifnotET T_selected; -}; -template -struct selectET2, T2, T_ifnotET, T_ifET> { - typedef ETBase T_selected; -}; -template -struct selectET2, T_ifnotET, T_ifET> { - typedef ETBase T_selected; -}; -template -struct selectET2, ETBase, T_ifnotET, T_ifET> { - typedef ETBase T_selected; -}; - - -// traits class that resolves to the ultimate numeric datatype used -// for operations on the container. This is necessary because for -// multicomponent containers we need to determine what the ultimate -// POD data type is. -template -struct opType { - typedef T T_optype; -}; -template -struct opType > { - typedef typename opType::T_optype T_optype; -}; -template -struct opType > { - typedef typename opType::T_optype T_optype; -}; -template -struct opType > { - typedef typename opType::T_optype T_optype; -}; -template -struct opType > { - typedef typename opType::T_optype T_optype; -}; - - -#ifdef BZ_HAVE_TEMPLATES_AS_TEMPLATE_ARGUMENTS - -// traits classes that provide the return type of operations - -template