1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-10-02 14:31:05 +02:00

Deploying to gh-pages from @ TREX-CoE/trexio@5cf12131f1 🚀

This commit is contained in:
scemama 2021-10-13 15:44:31 +00:00
parent 29e97e900f
commit 4703e52b99
7 changed files with 376 additions and 346 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREXIO source code documentation</title>
@ -343,7 +343,7 @@ and bug reports should be submitted at
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
@ -232,8 +232,8 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgae20282">1. Text back end</a></li>
<li><a href="#orgab061bc">2. HDF5 Back end</a></li>
<li><a href="#org753a5a5">1. Text back end</a></li>
<li><a href="#org4f08e9d">2. HDF5 Back end</a></li>
</ul>
</div>
</div>
@ -241,8 +241,8 @@ for the JavaScript code in this tag.
See templator<sub>front.org</sub>
</p>
<div id="outline-container-orgae20282" class="outline-2">
<h2 id="orgae20282"><span class="section-number-2">1</span> Text back end</h2>
<div id="outline-container-org753a5a5" class="outline-2">
<h2 id="org753a5a5"><span class="section-number-2">1</span> Text back end</h2>
<div class="outline-text-2" id="text-1">
<p>
As the size of the dataset should be extensible, the simplest
@ -256,8 +256,8 @@ The offset can be used with <code>fseek(69L*offset, SEEK_SET)</code>
</div>
</div>
<div id="outline-container-orgab061bc" class="outline-2">
<h2 id="orgab061bc"><span class="section-number-2">2</span> HDF5 Back end</h2>
<div id="outline-container-org4f08e9d" class="outline-2">
<h2 id="org4f08e9d"><span class="section-number-2">2</span> HDF5 Back end</h2>
<div class="outline-text-2" id="text-2">
<p>
We need to declare the number of rows of the dataset as
@ -278,7 +278,7 @@ If the offset+num &gt; nmax, we need to extend the dataset.
</div>
</div>
<div id="postamble" class="status">
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREXIO source code documentation</title>
@ -343,7 +343,7 @@ and bug reports should be submitted at
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Front end API</title>
@ -333,125 +333,125 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org016ab3c">1. Coding conventions</a>
<li><a href="#org4ca747e">1. Coding conventions</a>
<ul>
<li><a href="#org3b4ac2c">1.1. Memory allocation</a></li>
<li><a href="#org8fe7644">1.1. Memory allocation</a></li>
</ul>
</li>
<li><a href="#orgfa622ec">2. Front end</a>
<li><a href="#orga0e83f6">2. Front end</a>
<ul>
<li><a href="#org5901ebb">2.1. Error handling</a>
<li><a href="#org9dc3ff1">2.1. Error handling</a>
<ul>
<li><a href="#orgf0386cd">2.1.1. Decoding errors</a>
<li><a href="#orga91d636">2.1.1. Decoding errors</a>
<ul>
<li><a href="#orgc0b0325">2.1.1.1. C source code</a></li>
<li><a href="#orgbe7e070">2.1.1.2. Fortran interface</a></li>
<li><a href="#orga6a6e58">2.1.1.3. Python interface</a></li>
<li><a href="#orgd736777">2.1.1.1. C source code</a></li>
<li><a href="#orgbc0e7bd">2.1.1.2. Fortran interface</a></li>
<li><a href="#org505fc1e">2.1.1.3. Python interface</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgf6e81ac">2.2. Back ends</a>
<li><a href="#orgf4f119b">2.2. Back ends</a>
<ul>
<li><a href="#orgb92c460">2.2.1. C</a></li>
<li><a href="#org423fada">2.2.2. Fortran</a></li>
<li><a href="#orgc522b3d">2.2.3. Python</a></li>
<li><a href="#orgbbc769f">2.2.1. C</a></li>
<li><a href="#org79c6964">2.2.2. Fortran</a></li>
<li><a href="#org43cf73f">2.2.3. Python</a></li>
</ul>
</li>
<li><a href="#org7b22af9">2.3. Read/write behavior</a></li>
<li><a href="#org790af0c">2.4. TREXIO file type</a>
<li><a href="#orgc3f00c6">2.3. Read/write behavior</a></li>
<li><a href="#orgce4a4e1">2.4. TREXIO file type</a>
<ul>
<li><a href="#orgbef5b30">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
<li><a href="#org83fec1e">2.4.1. TREXIO<sub>File</sub> Python class</a></li>
</ul>
</li>
<li><a href="#orgfc9fee4">2.5. Polymorphism of the file handle</a></li>
<li><a href="#org1c0a473">2.6. File opening</a>
<li><a href="#org77be345">2.5. Polymorphism of the file handle</a></li>
<li><a href="#org0e94556">2.6. File opening</a>
<ul>
<li><a href="#orgfc36b9c">2.6.1. C</a></li>
<li><a href="#org61c6d35">2.6.2. Fortran</a></li>
<li><a href="#org8749c9e">2.6.3. Python</a></li>
<li><a href="#org711bcbe">2.6.4. Zero-based versus one-based arrays of indices</a></li>
<li><a href="#org3b6facf">2.6.1. C</a></li>
<li><a href="#orgc3534dd">2.6.2. Fortran</a></li>
<li><a href="#org2cb8ae4">2.6.3. Python</a></li>
<li><a href="#orgf4c5d3a">2.6.4. Zero-based versus one-based arrays of indices</a></li>
</ul>
</li>
<li><a href="#org5e24e07">2.7. File closing</a>
<li><a href="#orgc55098c">2.7. File closing</a>
<ul>
<li><a href="#org1384b33">2.7.1. C</a></li>
<li><a href="#org0f6c0bd">2.7.2. Fortran</a></li>
<li><a href="#org2079c5f">2.7.3. Python</a></li>
<li><a href="#orgea74c64">2.7.1. C</a></li>
<li><a href="#orgf643c2d">2.7.2. Fortran</a></li>
<li><a href="#org755d641">2.7.3. Python</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org2c8caae">3. Templates for front end</a>
<li><a href="#org709858c">3. Templates for front end</a>
<ul>
<li><a href="#orgaa20ebb">3.1. Description</a></li>
<li><a href="#org5c694b6">3.2. Templates for front end has/read/write a single numerical attribute</a>
<li><a href="#org0eb59bb">3.1. Description</a></li>
<li><a href="#org39839e4">3.2. Templates for front end has/read/write a single numerical attribute</a>
<ul>
<li><a href="#org8dceeea">3.2.1. Introduction</a></li>
<li><a href="#orgadff54e">3.2.2. C templates for front end</a>
<li><a href="#org0e0b00c">3.2.1. Introduction</a></li>
<li><a href="#orgeb8ab9b">3.2.2. C templates for front end</a>
<ul>
<li><a href="#org438cfaa">3.2.2.1. Function declarations</a></li>
<li><a href="#org05a6089">3.2.2.2. Source code for double precision functions</a></li>
<li><a href="#org8a0475f">3.2.2.3. Source code for single precision functions</a></li>
<li><a href="#org863bee4">3.2.2.4. Source code for default functions</a></li>
<li><a href="#org9e75abe">3.2.2.1. Function declarations</a></li>
<li><a href="#org74195cf">3.2.2.2. Source code for double precision functions</a></li>
<li><a href="#orgd9c2a41">3.2.2.3. Source code for single precision functions</a></li>
<li><a href="#org8eb403d">3.2.2.4. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#orgfcdc5ff">3.2.3. Fortran templates for front end</a></li>
<li><a href="#org1ec4f6a">3.2.4. Python templates for front end</a></li>
<li><a href="#org4a3285d">3.2.3. Fortran templates for front end</a></li>
<li><a href="#orgcd24e79">3.2.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#orgfeef584">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<li><a href="#org8e4e4b3">3.3. Templates for front end has/read/write a dataset of numerical data</a>
<ul>
<li><a href="#org6f6f410">3.3.1. Introduction</a></li>
<li><a href="#orge39a70e">3.3.2. C templates for front end</a>
<li><a href="#org45b9278">3.3.1. Introduction</a></li>
<li><a href="#orge1cf3c2">3.3.2. C templates for front end</a>
<ul>
<li><a href="#orge633319">3.3.2.1. Function declarations</a></li>
<li><a href="#org8a61c74">3.3.2.2. Source code for double precision functions</a></li>
<li><a href="#orgf4310ea">3.3.2.3. Source code for single precision functions</a></li>
<li><a href="#orgcf0ab41">3.3.2.4. Source code for memory-safe functions</a></li>
<li><a href="#orgc6b531d">3.3.2.5. Source code for default functions</a></li>
<li><a href="#org3bb0ae8">3.3.2.1. Function declarations</a></li>
<li><a href="#org0afdf43">3.3.2.2. Source code for double precision functions</a></li>
<li><a href="#org16d5409">3.3.2.3. Source code for single precision functions</a></li>
<li><a href="#orgd45b2d5">3.3.2.4. Source code for memory-safe functions</a></li>
<li><a href="#org49fdc42">3.3.2.5. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org09b59e5">3.3.3. Fortran templates for front end</a></li>
<li><a href="#orgefc7175">3.3.4. Python templates for front end</a></li>
<li><a href="#orgd9066c9">3.3.3. Fortran templates for front end</a></li>
<li><a href="#org849d306">3.3.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#org70a3c31">3.4. Sparse data structures</a></li>
<li><a href="#org40440e7">3.5. Templates for front end has/read/write a dataset of strings</a>
<li><a href="#org45bee93">3.4. Sparse data structures</a></li>
<li><a href="#orga1c7721">3.5. Templates for front end has/read/write a dataset of strings</a>
<ul>
<li><a href="#org6de4188">3.5.1. Introduction</a></li>
<li><a href="#orga7a4e78">3.5.2. C templates for front end</a>
<li><a href="#org6c6196e">3.5.1. Introduction</a></li>
<li><a href="#orga515816">3.5.2. C templates for front end</a>
<ul>
<li><a href="#org2d640b7">3.5.2.1. Function declarations</a></li>
<li><a href="#orgfbc35f6">3.5.2.2. Source code for default functions</a></li>
<li><a href="#orgb57217e">3.5.2.1. Function declarations</a></li>
<li><a href="#org26df813">3.5.2.2. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org74d2288">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org6a65d7f">3.5.4. Python templates for front end</a></li>
<li><a href="#org5ba0509">3.5.3. Fortran templates for front end</a></li>
<li><a href="#org57180cc">3.5.4. Python templates for front end</a></li>
</ul>
</li>
<li><a href="#org2a0bca8">3.6. Templates for front end has/read/write a single string attribute</a>
<li><a href="#org272d868">3.6. Templates for front end has/read/write a single string attribute</a>
<ul>
<li><a href="#orgab5277d">3.6.1. Introduction</a></li>
<li><a href="#org833bd14">3.6.2. C templates for front end</a>
<li><a href="#org88cb11b">3.6.1. Introduction</a></li>
<li><a href="#org1af648a">3.6.2. C templates for front end</a>
<ul>
<li><a href="#org54a12b6">3.6.2.1. Function declarations</a></li>
<li><a href="#orga7fd83b">3.6.2.2. Source code for default functions</a></li>
<li><a href="#orgba69a9b">3.6.2.1. Function declarations</a></li>
<li><a href="#orga977a73">3.6.2.2. Source code for default functions</a></li>
</ul>
</li>
<li><a href="#org16478b4">3.6.3. Fortran templates for front end</a></li>
<li><a href="#orga592fe9">3.6.4. Python templates for front end</a></li>
<li><a href="#org8eee9bd">3.6.3. Fortran templates for front end</a></li>
<li><a href="#orgde8723f">3.6.4. Python templates for front end</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orge27e861">4. Fortran helper/wrapper functions</a></li>
<li><a href="#orgd4a1f93">4. Fortran helper/wrapper functions</a></li>
</ul>
</div>
</div>
<div id="outline-container-org016ab3c" class="outline-2">
<h2 id="org016ab3c"><span class="section-number-2">1</span> Coding conventions</h2>
<div id="outline-container-org4ca747e" class="outline-2">
<h2 id="org4ca747e"><span class="section-number-2">1</span> Coding conventions</h2>
<div class="outline-text-2" id="text-1">
<ul class="org-ul">
<li>integer types will be defined using types given in <code>stdint.h</code></li>
@ -466,8 +466,8 @@ for the JavaScript code in this tag.
</ul>
</div>
<div id="outline-container-org3b4ac2c" class="outline-3">
<h3 id="org3b4ac2c"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div id="outline-container-org8fe7644" class="outline-3">
<h3 id="org8fe7644"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Memory allocation of structures can be facilitated by using the
@ -502,8 +502,8 @@ The maximum string size for the filenames is 4096 characters.
</div>
</div>
<div id="outline-container-orgfa622ec" class="outline-2">
<h2 id="orgfa622ec"><span class="section-number-2">2</span> Front end</h2>
<div id="outline-container-orga0e83f6" class="outline-2">
<h2 id="orga0e83f6"><span class="section-number-2">2</span> Front end</h2>
<div class="outline-text-2" id="text-2">
<p>
All calls to TREXIO are thread-safe.
@ -511,10 +511,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</p>
</div>
<div id="outline-container-org5901ebb" class="outline-3">
<h3 id="org5901ebb"><span class="section-number-3">2.1</span> Error handling</h3>
<div id="outline-container-org9dc3ff1" class="outline-3">
<h3 id="org9dc3ff1"><span class="section-number-3">2.1</span> Error handling</h3>
<div class="outline-text-3" id="text-2-1">
<table id="orgb9049e1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org56d9b14" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -736,8 +736,8 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</div>
</div>
<div id="outline-container-orgf0386cd" class="outline-4">
<h4 id="orgf0386cd"><span class="section-number-4">2.1.1</span> Decoding errors</h4>
<div id="outline-container-orga91d636" class="outline-4">
<h4 id="orga91d636"><span class="section-number-4">2.1.1</span> Decoding errors</h4>
<div class="outline-text-4" id="text-2-1-1">
<p>
The <code>trexio_string_of_error</code> converts an exit code into a string. The
@ -760,8 +760,8 @@ The text strings are extracted from the previous table.
</p>
</div>
<div id="outline-container-orgc0b0325" class="outline-5">
<h5 id="orgc0b0325"><span class="section-number-5">2.1.1.1</span> C source code</h5>
<div id="outline-container-orgd736777" class="outline-5">
<h5 id="orgd736777"><span class="section-number-5">2.1.1.1</span> C source code</h5>
<div class="outline-text-5" id="text-2-1-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>*
@ -866,8 +866,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-orgbe7e070" class="outline-5">
<h5 id="orgbe7e070"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
<div id="outline-container-orgbc0e7bd" class="outline-5">
<h5 id="orgbc0e7bd"><span class="section-number-5">2.1.1.2</span> Fortran interface</h5>
<div class="outline-text-5" id="text-2-1-1-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
@ -883,8 +883,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-orga6a6e58" class="outline-5">
<h5 id="orga6a6e58"><span class="section-number-5">2.1.1.3</span> Python interface</h5>
<div id="outline-container-org505fc1e" class="outline-5">
<h5 id="org505fc1e"><span class="section-number-5">2.1.1.3</span> Python interface</h5>
<div class="outline-text-5" id="text-2-1-1-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">class</span> <span style="color: #228b22;">Error</span>(<span style="color: #228b22;">Exception</span>):
@ -923,8 +923,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-orgf6e81ac" class="outline-3">
<h3 id="orgf6e81ac"><span class="section-number-3">2.2</span> Back ends</h3>
<div id="outline-container-orgf4f119b" class="outline-3">
<h3 id="orgf4f119b"><span class="section-number-3">2.2</span> Back ends</h3>
<div class="outline-text-3" id="text-2-2">
<p>
TREXIO has several back ends:
@ -948,8 +948,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</p>
</div>
<div id="outline-container-orgb92c460" class="outline-4">
<h4 id="orgb92c460"><span class="section-number-4">2.2.1</span> C</h4>
<div id="outline-container-orgbbc769f" class="outline-4">
<h4 id="orgbbc769f"><span class="section-number-4">2.2.1</span> C</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #228b22;">int32_t</span> <span style="color: #228b22;">back_end_t</span>;
@ -965,8 +965,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-org423fada" class="outline-4">
<h4 id="org423fada"><span class="section-number-4">2.2.2</span> Fortran</h4>
<div id="outline-container-org79c6964" class="outline-4">
<h4 id="org79c6964"><span class="section-number-4">2.2.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-2-2">
<div class="org-src-container">
<pre class="src src-f90"> <span style="color: #228b22;">integer</span>(trexio_backend), <span style="color: #a020f0;">parameter</span> ::<span style="color: #a0522d;"> TREXIO_HDF5 = 0</span>
@ -978,8 +978,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-orgc522b3d" class="outline-4">
<h4 id="orgc522b3d"><span class="section-number-4">2.2.3</span> Python</h4>
<div id="outline-container-org43cf73f" class="outline-4">
<h4 id="org43cf73f"><span class="section-number-4">2.2.3</span> Python</h4>
<div class="outline-text-4" id="text-2-2-3">
<div class="org-src-container">
<pre class="src src-python"># <span style="color: #b22222;">define TREXIO back ends</span>
@ -993,8 +993,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
<div id="outline-container-org7b22af9" class="outline-3">
<h3 id="org7b22af9"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div id="outline-container-orgc3f00c6" class="outline-3">
<h3 id="orgc3f00c6"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Every time a reading function is called, the data is read from the
@ -1022,8 +1022,8 @@ concurrent programs, the behavior is not specified.
</p>
</div>
</div>
<div id="outline-container-org790af0c" class="outline-3">
<h3 id="org790af0c"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div id="outline-container-orgce4a4e1" class="outline-3">
<h3 id="orgce4a4e1"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div class="outline-text-3" id="text-2-4">
<p>
<code>trexio_s</code> is the the main type for TREXIO files, visible to the users
@ -1057,8 +1057,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-orgbef5b30" class="outline-4">
<h4 id="orgbef5b30"><span class="section-number-4">2.4.1</span> TREXIO<sub>File</sub> Python class</h4>
<div id="outline-container-org83fec1e" class="outline-4">
<h4 id="org83fec1e"><span class="section-number-4">2.4.1</span> TREXIO<sub>File</sub> Python class</h4>
<div class="outline-text-4" id="text-2-4-1">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">class</span> <span style="color: #228b22;">File</span>:
@ -1131,8 +1131,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
<div id="outline-container-orgfc9fee4" class="outline-3">
<h3 id="orgfc9fee4"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div id="outline-container-org77be345" class="outline-3">
<h3 id="org77be345"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div class="outline-text-3" id="text-2-5">
<p>
Polymorphism of the <code>trexio_t</code> type is handled by ensuring that the
@ -1151,8 +1151,8 @@ corresponding types for all back ends can be safely casted to
</div>
</div>
<div id="outline-container-org1c0a473" class="outline-3">
<h3 id="org1c0a473"><span class="section-number-3">2.6</span> File opening</h3>
<div id="outline-container-org0e94556" class="outline-3">
<h3 id="org0e94556"><span class="section-number-3">2.6</span> File opening</h3>
<div class="outline-text-3" id="text-2-6">
<p>
<code>trexio_open</code> creates a new TREXIO file or opens existing one.
@ -1191,8 +1191,8 @@ renaming the <code>.txt</code> data files.
</p>
</div>
<div id="outline-container-orgfc36b9c" class="outline-4">
<h4 id="orgfc36b9c"><span class="section-number-4">2.6.1</span> C</h4>
<div id="outline-container-org3b6facf" class="outline-4">
<h4 id="org3b6facf"><span class="section-number-4">2.6.1</span> C</h4>
<div class="outline-text-4" id="text-2-6-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_t</span>*
@ -1359,8 +1359,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org61c6d35" class="outline-4">
<h4 id="org61c6d35"><span class="section-number-4">2.6.2</span> Fortran</h4>
<div id="outline-container-orgc3534dd" class="outline-4">
<h4 id="orgc3534dd"><span class="section-number-4">2.6.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-6-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
@ -1378,8 +1378,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org8749c9e" class="outline-4">
<h4 id="org8749c9e"><span class="section-number-4">2.6.3</span> Python</h4>
<div id="outline-container-org2cb8ae4" class="outline-4">
<h4 id="org2cb8ae4"><span class="section-number-4">2.6.3</span> Python</h4>
<div class="outline-text-4" id="text-2-6-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">open</span>(file_name: <span style="color: #483d8b;">str</span>, mode: <span style="color: #483d8b;">str</span>, back_end: <span style="color: #483d8b;">int</span>):
@ -1427,8 +1427,8 @@ renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-org711bcbe" class="outline-4">
<h4 id="org711bcbe"><span class="section-number-4">2.6.4</span> Zero-based versus one-based arrays of indices</h4>
<div id="outline-container-orgf4c5d3a" class="outline-4">
<h4 id="orgf4c5d3a"><span class="section-number-4">2.6.4</span> Zero-based versus one-based arrays of indices</h4>
<div class="outline-text-4" id="text-2-6-4">
<p>
Because arrays are zero-based in Fortran, we need to set a flag to
@ -1461,8 +1461,8 @@ know if we need to shift by 1 arrays of indices.
</div>
</div>
<div id="outline-container-org5e24e07" class="outline-3">
<h3 id="org5e24e07"><span class="section-number-3">2.7</span> File closing</h3>
<div id="outline-container-orgc55098c" class="outline-3">
<h3 id="orgc55098c"><span class="section-number-3">2.7</span> File closing</h3>
<div class="outline-text-3" id="text-2-7">
<p>
<code>trexio_close</code> closes an existing <code>trexio_t</code> file.
@ -1479,8 +1479,8 @@ output:
</p>
</div>
<div id="outline-container-org1384b33" class="outline-4">
<h4 id="org1384b33"><span class="section-number-4">2.7.1</span> C</h4>
<div id="outline-container-orgea74c64" class="outline-4">
<h4 id="orgea74c64"><span class="section-number-4">2.7.1</span> C</h4>
<div class="outline-text-4" id="text-2-7-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1551,8 +1551,8 @@ output:
</div>
</div>
<div id="outline-container-org0f6c0bd" class="outline-4">
<h4 id="org0f6c0bd"><span class="section-number-4">2.7.2</span> Fortran</h4>
<div id="outline-container-orgf643c2d" class="outline-4">
<h4 id="orgf643c2d"><span class="section-number-4">2.7.2</span> Fortran</h4>
<div class="outline-text-4" id="text-2-7-2">
<div class="org-src-container">
<pre class="src src-f90"><span style="color: #a020f0;">interface</span>
@ -1566,8 +1566,8 @@ output:
</div>
</div>
<div id="outline-container-org2079c5f" class="outline-4">
<h4 id="org2079c5f"><span class="section-number-4">2.7.3</span> Python</h4>
<div id="outline-container-org755d641" class="outline-4">
<h4 id="org755d641"><span class="section-number-4">2.7.3</span> Python</h4>
<div class="outline-text-4" id="text-2-7-3">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">close</span>(trexio_file):
@ -1589,12 +1589,12 @@ output:
</div>
</div>
<div id="outline-container-org2c8caae" class="outline-2">
<h2 id="org2c8caae"><span class="section-number-2">3</span> Templates for front end</h2>
<div id="outline-container-org709858c" class="outline-2">
<h2 id="org709858c"><span class="section-number-2">3</span> Templates for front end</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orgaa20ebb" class="outline-3">
<h3 id="orgaa20ebb"><span class="section-number-3">3.1</span> Description</h3>
<div id="outline-container-org0eb59bb" class="outline-3">
<h3 id="org0eb59bb"><span class="section-number-3">3.1</span> Description</h3>
<div class="outline-text-3" id="text-3-1">
<p>
Consider the following block of <code>trex.json</code>:
@ -1815,12 +1815,12 @@ value will result in <code>TREXIO_INVALID_ARG_2</code> exit code.
</div>
</div>
<div id="outline-container-org5c694b6" class="outline-3">
<h3 id="org5c694b6"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single numerical attribute</h3>
<div id="outline-container-org39839e4" class="outline-3">
<h3 id="org39839e4"><span class="section-number-3">3.2</span> Templates for front end has/read/write a single numerical attribute</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org8dceeea" class="outline-4">
<h4 id="org8dceeea"><span class="section-number-4">3.2.1</span> Introduction</h4>
<div id="outline-container-org0e0b00c" class="outline-4">
<h4 id="org0e0b00c"><span class="section-number-4">3.2.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
This section concerns API calls related to numerical attributes,
@ -1891,8 +1891,8 @@ namely single value of int/float types.
</div>
</div>
<div id="outline-container-orgadff54e" class="outline-4">
<h4 id="orgadff54e"><span class="section-number-4">3.2.2</span> C templates for front end</h4>
<div id="outline-container-orgeb8ab9b" class="outline-4">
<h4 id="orgeb8ab9b"><span class="section-number-4">3.2.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
The <code>C</code> templates that correspond to each of the abovementioned
@ -1906,12 +1906,12 @@ precision (see Table above).
</p>
</div>
<div id="outline-container-org438cfaa" class="outline-5">
<h5 id="org438cfaa"><span class="section-number-5">3.2.2.1</span> Function declarations</h5>
<div id="outline-container-org9e75abe" class="outline-5">
<h5 id="org9e75abe"><span class="section-number-5">3.2.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org05a6089" class="outline-5">
<h5 id="org05a6089"><span class="section-number-5">3.2.2.2</span> Source code for double precision functions</h5>
<div id="outline-container-org74195cf" class="outline-5">
<h5 id="org74195cf"><span class="section-number-5">3.2.2.2</span> Source code for double precision functions</h5>
<div class="outline-text-5" id="text-3-2-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1972,8 +1972,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-org8a0475f" class="outline-5">
<h5 id="org8a0475f"><span class="section-number-5">3.2.2.3</span> Source code for single precision functions</h5>
<div id="outline-container-orgd9c2a41" class="outline-5">
<h5 id="orgd9c2a41"><span class="section-number-5">3.2.2.3</span> Source code for single precision functions</h5>
<div class="outline-text-5" id="text-3-2-2-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2041,8 +2041,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-org863bee4" class="outline-5">
<h5 id="org863bee4"><span class="section-number-5">3.2.2.4</span> Source code for default functions</h5>
<div id="outline-container-org8eb403d" class="outline-5">
<h5 id="org8eb403d"><span class="section-number-5">3.2.2.4</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-2-2-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2095,8 +2095,8 @@ precision (see Table above).
</div>
</div>
<div id="outline-container-orgfcdc5ff" class="outline-4">
<h4 id="orgfcdc5ff"><span class="section-number-4">3.2.3</span> Fortran templates for front end</h4>
<div id="outline-container-org4a3285d" class="outline-4">
<h4 id="org4a3285d"><span class="section-number-4">3.2.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-2-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -2181,8 +2181,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org1ec4f6a" class="outline-4">
<h4 id="org1ec4f6a"><span class="section-number-4">3.2.4</span> Python templates for front end</h4>
<div id="outline-container-orgcd24e79" class="outline-4">
<h4 id="orgcd24e79"><span class="section-number-4">3.2.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-2-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_num$(trexio_file, num_w: $group_num_py_dtype$) -&gt; <span style="color: #008b8b;">None</span>:
@ -2267,12 +2267,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgfeef584" class="outline-3">
<h3 id="orgfeef584"><span class="section-number-3">3.3</span> Templates for front end has/read/write a dataset of numerical data</h3>
<div id="outline-container-org8e4e4b3" class="outline-3">
<h3 id="org8e4e4b3"><span class="section-number-3">3.3</span> Templates for front end has/read/write a dataset of numerical data</h3>
<div class="outline-text-3" id="text-3-3">
</div>
<div id="outline-container-org6f6f410" class="outline-4">
<h4 id="org6f6f410"><span class="section-number-4">3.3.1</span> Introduction</h4>
<div id="outline-container-org45b9278" class="outline-4">
<h4 id="org45b9278"><span class="section-number-4">3.3.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-3-1">
<p>
This section concerns API calls related to datasets.
@ -2354,8 +2354,8 @@ This section concerns API calls related to datasets.
</div>
</div>
<div id="outline-container-orge39a70e" class="outline-4">
<h4 id="orge39a70e"><span class="section-number-4">3.3.2</span> C templates for front end</h4>
<div id="outline-container-orge1cf3c2" class="outline-4">
<h4 id="orge1cf3c2"><span class="section-number-4">3.3.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-3-2">
<p>
The C templates that correspond to each of the abovementioned functions can be found below.
@ -2366,13 +2366,13 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</p>
</div>
<div id="outline-container-orge633319" class="outline-5">
<h5 id="orge633319"><span class="section-number-5">3.3.2.1</span> Function declarations</h5>
<div id="outline-container-org3bb0ae8" class="outline-5">
<h5 id="org3bb0ae8"><span class="section-number-5">3.3.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-org8a61c74" class="outline-5">
<h5 id="org8a61c74"><span class="section-number-5">3.3.2.2</span> Source code for double precision functions</h5>
<div id="outline-container-org0afdf43" class="outline-5">
<h5 id="org0afdf43"><span class="section-number-5">3.3.2.2</span> Source code for double precision functions</h5>
<div class="outline-text-5" id="text-3-3-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2500,8 +2500,8 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-orgf4310ea" class="outline-5">
<h5 id="orgf4310ea"><span class="section-number-5">3.3.2.3</span> Source code for single precision functions</h5>
<div id="outline-container-org16d5409" class="outline-5">
<h5 id="org16d5409"><span class="section-number-5">3.3.2.3</span> Source code for single precision functions</h5>
<div class="outline-text-5" id="text-3-3-2-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2642,11 +2642,11 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-orgcf0ab41" class="outline-5">
<h5 id="orgcf0ab41"><span class="section-number-5">3.3.2.4</span> Source code for memory-safe functions</h5>
<div id="outline-container-orgd45b2d5" class="outline-5">
<h5 id="orgd45b2d5"><span class="section-number-5">3.3.2.4</span> Source code for memory-safe functions</h5>
<div class="outline-text-5" id="text-3-3-2-4">
<div class="org-src-container">
<pre class="src src-c" id="org23f8348"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #a0522d;">rc</span>;
<pre class="src src-c" id="orgaba2b52"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #a0522d;">rc</span>;
int64_t $group_dset_dim$ = 0;
/* <span style="color: #b22222;">Error handling for this call is added by the generator </span>*/
@ -2802,8 +2802,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-orgc6b531d" class="outline-5">
<h5 id="orgc6b531d"><span class="section-number-5">3.3.2.5</span> Source code for default functions</h5>
<div id="outline-container-org49fdc42" class="outline-5">
<h5 id="org49fdc42"><span class="section-number-5">3.3.2.5</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-3-2-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -2877,8 +2877,8 @@ rc = trexio_read_$group_dset_dim$_64(file, &amp;($group_dset_dim$));
</div>
</div>
<div id="outline-container-org09b59e5" class="outline-4">
<h4 id="org09b59e5"><span class="section-number-4">3.3.3</span> Fortran templates for front end</h4>
<div id="outline-container-orgd9066c9" class="outline-4">
<h4 id="orgd9066c9"><span class="section-number-4">3.3.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-3-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -2963,8 +2963,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgefc7175" class="outline-4">
<h4 id="orgefc7175"><span class="section-number-4">3.3.4</span> Python templates for front end</h4>
<div id="outline-container-org849d306" class="outline-4">
<h4 id="org849d306"><span class="section-number-4">3.3.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-3-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_dset$(trexio_file, dset_w) -&gt; <span style="color: #008b8b;">None</span>:
@ -3159,8 +3159,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org70a3c31" class="outline-3">
<h3 id="org70a3c31"><span class="section-number-3">3.4</span> Sparse data structures</h3>
<div id="outline-container-org45bee93" class="outline-3">
<h3 id="org45bee93"><span class="section-number-3">3.4</span> Sparse data structures</h3>
<div class="outline-text-3" id="text-3-4">
<p>
Sparse data structures are used typically for large tensors such as
@ -3301,12 +3301,12 @@ For the values,
</div>
</div>
<div id="outline-container-org40440e7" class="outline-3">
<h3 id="org40440e7"><span class="section-number-3">3.5</span> Templates for front end has/read/write a dataset of strings</h3>
<div id="outline-container-orga1c7721" class="outline-3">
<h3 id="orga1c7721"><span class="section-number-3">3.5</span> Templates for front end has/read/write a dataset of strings</h3>
<div class="outline-text-3" id="text-3-5">
</div>
<div id="outline-container-org6de4188" class="outline-4">
<h4 id="org6de4188"><span class="section-number-4">3.5.1</span> Introduction</h4>
<div id="outline-container-org6c6196e" class="outline-4">
<h4 id="org6c6196e"><span class="section-number-4">3.5.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-5-1">
<p>
This section concerns API calls related to datasets of strings.
@ -3346,8 +3346,8 @@ This section concerns API calls related to datasets of strings.
</div>
</div>
<div id="outline-container-orga7a4e78" class="outline-4">
<h4 id="orga7a4e78"><span class="section-number-4">3.5.2</span> C templates for front end</h4>
<div id="outline-container-orga515816" class="outline-4">
<h4 id="orga515816"><span class="section-number-4">3.5.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-5-2">
<p>
First parameter is the <code>TREXIO</code> file handle. Second parameter is the variable to be written/read
@ -3355,12 +3355,12 @@ to/from the <code>TREXIO</code> file (except for <code>trexio_has_</code> functi
</p>
</div>
<div id="outline-container-org2d640b7" class="outline-5">
<h5 id="org2d640b7"><span class="section-number-5">3.5.2.1</span> Function declarations</h5>
<div id="outline-container-orgb57217e" class="outline-5">
<h5 id="orgb57217e"><span class="section-number-5">3.5.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-orgfbc35f6" class="outline-5">
<h5 id="orgfbc35f6"><span class="section-number-5">3.5.2.2</span> Source code for default functions</h5>
<div id="outline-container-org26df813" class="outline-5">
<h5 id="org26df813"><span class="section-number-5">3.5.2.2</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-5-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -3602,8 +3602,8 @@ to/from the <code>TREXIO</code> file (except for <code>trexio_has_</code> functi
</div>
</div>
<div id="outline-container-org74d2288" class="outline-4">
<h4 id="org74d2288"><span class="section-number-4">3.5.3</span> Fortran templates for front end</h4>
<div id="outline-container-org5ba0509" class="outline-4">
<h4 id="org5ba0509"><span class="section-number-4">3.5.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-5-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -3699,8 +3699,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org6a65d7f" class="outline-4">
<h4 id="org6a65d7f"><span class="section-number-4">3.5.4</span> Python templates for front end</h4>
<div id="outline-container-org57180cc" class="outline-4">
<h4 id="org57180cc"><span class="section-number-4">3.5.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-5-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_dset$(trexio_file, dset_w: <span style="color: #483d8b;">list</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -3816,12 +3816,12 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-org2a0bca8" class="outline-3">
<h3 id="org2a0bca8"><span class="section-number-3">3.6</span> Templates for front end has/read/write a single string attribute</h3>
<div id="outline-container-org272d868" class="outline-3">
<h3 id="org272d868"><span class="section-number-3">3.6</span> Templates for front end has/read/write a single string attribute</h3>
<div class="outline-text-3" id="text-3-6">
</div>
<div id="outline-container-orgab5277d" class="outline-4">
<h4 id="orgab5277d"><span class="section-number-4">3.6.1</span> Introduction</h4>
<div id="outline-container-org88cb11b" class="outline-4">
<h4 id="org88cb11b"><span class="section-number-4">3.6.1</span> Introduction</h4>
<div class="outline-text-4" id="text-3-6-1">
<p>
This section concerns API calls related to string attributes.
@ -3861,16 +3861,16 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-org833bd14" class="outline-4">
<h4 id="org833bd14"><span class="section-number-4">3.6.2</span> C templates for front end</h4>
<div id="outline-container-org1af648a" class="outline-4">
<h4 id="org1af648a"><span class="section-number-4">3.6.2</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-6-2">
</div>
<div id="outline-container-org54a12b6" class="outline-5">
<h5 id="org54a12b6"><span class="section-number-5">3.6.2.1</span> Function declarations</h5>
<div id="outline-container-orgba69a9b" class="outline-5">
<h5 id="orgba69a9b"><span class="section-number-5">3.6.2.1</span> Function declarations</h5>
</div>
<div id="outline-container-orga7fd83b" class="outline-5">
<h5 id="orga7fd83b"><span class="section-number-5">3.6.2.2</span> Source code for default functions</h5>
<div id="outline-container-orga977a73" class="outline-5">
<h5 id="orga977a73"><span class="section-number-5">3.6.2.2</span> Source code for default functions</h5>
<div class="outline-text-5" id="text-3-6-2-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -3970,8 +3970,8 @@ This section concerns API calls related to string attributes.
</div>
</div>
<div id="outline-container-org16478b4" class="outline-4">
<h4 id="org16478b4"><span class="section-number-4">3.6.3</span> Fortran templates for front end</h4>
<div id="outline-container-org8eee9bd" class="outline-4">
<h4 id="org8eee9bd"><span class="section-number-4">3.6.3</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-6-3">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -4048,8 +4048,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orga592fe9" class="outline-4">
<h4 id="orga592fe9"><span class="section-number-4">3.6.4</span> Python templates for front end</h4>
<div id="outline-container-orgde8723f" class="outline-4">
<h4 id="orgde8723f"><span class="section-number-4">3.6.4</span> Python templates for front end</h4>
<div class="outline-text-4" id="text-3-6-4">
<div class="org-src-container">
<pre class="src src-python"><span style="color: #a020f0;">def</span> <span style="color: #0000ff;">write_</span>$group_str$(trexio_file, str_w: <span style="color: #483d8b;">str</span>) -&gt; <span style="color: #008b8b;">None</span>:
@ -4139,8 +4139,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orge27e861" class="outline-2">
<h2 id="orge27e861"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div id="outline-container-orgd4a1f93" class="outline-2">
<h2 id="orgd4a1f93"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div class="outline-text-2" id="text-4">
<p>
The function below adapts the original C-based <code>trexio_open</code> for Fortran.
@ -4275,7 +4275,7 @@ two code are identical, i.e. if the <code>assert</code> statement pass.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>HDF5 back end</title>
@ -311,27 +311,27 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org34c4bcc">1. HDF5 back end</a>
<li><a href="#org6506c1f">1. HDF5 back end</a>
<ul>
<li><a href="#org69f7872">1.1. Template for HDF5 definitions</a></li>
<li><a href="#orga7f754b">1.2. Template for HDF5 structures</a></li>
<li><a href="#org61df68b">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#org5edc5c2">1.4. Template for HDF5 has/read/write the numerical attribute</a></li>
<li><a href="#orgcbe1bc3">1.5. Template for HDF5 has/read/write the dataset of numerical data</a></li>
<li><a href="#orgd86c8f8">1.6. Template for HDF5 has/read/write the dataset of strings</a></li>
<li><a href="#orgd5617ce">1.7. Template for HDF5 has/read/write the string attribute</a></li>
<li><a href="#org62e0c7b">1.1. Template for HDF5 definitions</a></li>
<li><a href="#orgca96998">1.2. Template for HDF5 structures</a></li>
<li><a href="#org95282e5">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#org1bc2853">1.4. Template for HDF5 has/read/write the numerical attribute</a></li>
<li><a href="#orge7b6e80">1.5. Template for HDF5 has/read/write the dataset of numerical data</a></li>
<li><a href="#org1a22ff2">1.6. Template for HDF5 has/read/write the dataset of strings</a></li>
<li><a href="#org24e06ea">1.7. Template for HDF5 has/read/write the string attribute</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org34c4bcc" class="outline-2">
<h2 id="org34c4bcc"><span class="section-number-2">1</span> HDF5 back end</h2>
<div id="outline-container-org6506c1f" class="outline-2">
<h2 id="org6506c1f"><span class="section-number-2">1</span> HDF5 back end</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org69f7872" class="outline-3">
<h3 id="org69f7872"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div id="outline-container-org62e0c7b" class="outline-3">
<h3 id="org62e0c7b"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #483d8b;">#define</span> $GROUP$_GROUP_NAME <span style="color: #8b2252;">"$group$"</span>
@ -343,8 +343,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orga7f754b" class="outline-3">
<h3 id="orga7f754b"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div id="outline-container-orgca96998" class="outline-3">
<h3 id="orgca96998"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">trexio_hdf5_s</span> {
@ -358,8 +358,8 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-org61df68b" class="outline-3">
<h3 id="org61df68b"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div id="outline-container-org95282e5" class="outline-3">
<h3 id="org95282e5"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -439,8 +439,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org5edc5c2" class="outline-3">
<h3 id="org5edc5c2"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write the numerical attribute</h3>
<div id="outline-container-org1bc2853" class="outline-3">
<h3 id="org1bc2853"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write the numerical attribute</h3>
<div class="outline-text-3" id="text-1-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -534,8 +534,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgcbe1bc3" class="outline-3">
<h3 id="orgcbe1bc3"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write the dataset of numerical data</h3>
<div id="outline-container-orge7b6e80" class="outline-3">
<h3 id="orge7b6e80"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write the dataset of numerical data</h3>
<div class="outline-text-3" id="text-1-5">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -658,8 +658,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgd86c8f8" class="outline-3">
<h3 id="orgd86c8f8"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write the dataset of strings</h3>
<div id="outline-container-org1a22ff2" class="outline-3">
<h3 id="org1a22ff2"><span class="section-number-3">1.6</span> Template for HDF5 has/read/write the dataset of strings</h3>
<div class="outline-text-3" id="text-1-6">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -864,8 +864,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgd5617ce" class="outline-3">
<h3 id="orgd5617ce"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write the string attribute</h3>
<div id="outline-container-org24e06ea" class="outline-3">
<h3 id="org24e06ea"><span class="section-number-3">1.7</span> Template for HDF5 has/read/write the string attribute</h3>
<div class="outline-text-3" id="text-1-7">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -992,7 +992,7 @@ for the JavaScript code in this tag.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TEXT back end</title>
@ -311,26 +311,26 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orga594453">1. TEXT back end</a>
<li><a href="#orgd40589b">1. TEXT back end</a>
<ul>
<li><a href="#org5eb2bce">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#org0a1eb05">1.2. Template for general structure in text back end</a></li>
<li><a href="#org3a5500b">1.3. Initialize function (constant part)</a></li>
<li><a href="#org4abf98d">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#orgcf5bcc9">1.5. Template for text read struct</a></li>
<li><a href="#org466682a">1.6. Template for text flush struct</a></li>
<li><a href="#org9911daa">1.7. Template for text free memory</a></li>
<li><a href="#org70b9291">1.8. Template for has/read/write the numerical attribute</a></li>
<li><a href="#orgbef125d">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#orgfe73035">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#org6712297">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#orgc059162">1.12. RDM struct (hard-coded)</a>
<li><a href="#orga2e1f70">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#orgb8ad10d">1.2. Template for general structure in text back end</a></li>
<li><a href="#orgb2f8f9f">1.3. Initialize function (constant part)</a></li>
<li><a href="#org715035c">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#org2d81245">1.5. Template for text read struct</a></li>
<li><a href="#org277f07e">1.6. Template for text flush struct</a></li>
<li><a href="#org8a820e9">1.7. Template for text free memory</a></li>
<li><a href="#orga516891">1.8. Template for has/read/write the numerical attribute</a></li>
<li><a href="#orge7bec40">1.9. Template for has/read/write the dataset of numerical data</a></li>
<li><a href="#org4034bdb">1.10. Template for has/read/write the dataset of strings</a></li>
<li><a href="#org9b83a67">1.11. Template for has/read/write the string attribute</a></li>
<li><a href="#org02b19bb">1.12. RDM struct (hard-coded)</a>
<ul>
<li><a href="#org5456979">1.12.1. Read the complete struct</a></li>
<li><a href="#orga7773c6">1.12.2. Flush the complete struct</a></li>
<li><a href="#org57e739d">1.12.3. Free memory</a></li>
<li><a href="#orgcc4bafc">1.12.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#org1a9d8f2">1.12.5. Read/Write the two<sub>e</sub> attribute</a></li>
<li><a href="#org49287c3">1.12.1. Read the complete struct</a></li>
<li><a href="#orgd279259">1.12.2. Flush the complete struct</a></li>
<li><a href="#org133df6b">1.12.3. Free memory</a></li>
<li><a href="#orgd7cbd35">1.12.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#org3946190">1.12.5. Read/Write the two<sub>e</sub> attribute</a></li>
</ul>
</li>
</ul>
@ -339,8 +339,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orga594453" class="outline-2">
<h2 id="orga594453"><span class="section-number-2">1</span> TEXT back end</h2>
<div id="outline-container-orgd40589b" class="outline-2">
<h2 id="orgd40589b"><span class="section-number-2">1</span> TEXT back end</h2>
<div class="outline-text-2" id="text-1">
<p>
The "file" produced by the text back end is a directory with one
@ -361,8 +361,8 @@ The file is written when closed, or when the flush function is called.
</p>
</div>
<div id="outline-container-org5eb2bce" class="outline-3">
<h3 id="org5eb2bce"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</h3>
<div id="outline-container-orga2e1f70" class="outline-3">
<h3 id="orga2e1f70"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> $group$_s {
@ -381,8 +381,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org0a1eb05" class="outline-3">
<h3 id="org0a1eb05"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div id="outline-container-orgb8ad10d" class="outline-3">
<h3 id="orgb8ad10d"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #a020f0;">typedef</span> <span style="color: #a020f0;">struct</span> <span style="color: #228b22;">rdm_s</span> {
@ -408,8 +408,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org3a5500b" class="outline-3">
<h3 id="org3a5500b"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div id="outline-container-orgb2f8f9f" class="outline-3">
<h3 id="orgb2f8f9f"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -426,13 +426,26 @@ The file is written when closed, or when the flush function is called.
/* <span style="color: #b22222;">If directory doesn't exist, create it in write mode </span>*/
<span style="color: #a020f0;">struct</span> <span style="color: #228b22;">stat</span> <span style="color: #a0522d;">st</span>;
<span style="color: #a020f0;">if</span> (stat(file-&gt;file_name, &amp;st) == 0 &amp;&amp; S_ISDIR(st.st_mode)) {
/* <span style="color: #b22222;">Do nothing </span>*/
} <span style="color: #a020f0;">else</span> {
<span style="color: #a020f0;">if</span> (file-&gt;mode == <span style="color: #8b2252;">'r'</span>) <span style="color: #a020f0;">return</span> TREXIO_READONLY;
<span style="color: #228b22;">int</span> <span style="color: #a0522d;">rc</span> = stat(file-&gt;file_name, &amp;st);
<span style="color: #a020f0;">if</span> (mkdir(file-&gt;file_name, 0777) != 0) {
<span style="color: #a020f0;">return</span> TREXIO_FAILURE;
<span style="color: #228b22;">bool</span> <span style="color: #a0522d;">file_exists</span> = rc == 0;
<span style="color: #a020f0;">if</span> (file_exists) {
<span style="color: #228b22;">bool</span> <span style="color: #a0522d;">is_a_directory</span> = st.st_mode &amp; S_IFDIR;
<span style="color: #a020f0;">if</span> (!is_a_directory) {
<span style="color: #a020f0;">return</span> TREXIO_FILE_ERROR;
}
} <span style="color: #a020f0;">else</span> {
<span style="color: #a020f0;">if</span> (file-&gt;mode == <span style="color: #8b2252;">'r'</span>) {
<span style="color: #a020f0;">return</span> TREXIO_READONLY;
}
rc = mkdir(file-&gt;file_name, 0777);
<span style="color: #a020f0;">if</span> (rc != 0) {
<span style="color: #a020f0;">return</span> TREXIO_ERRNO;
}
}
@ -451,7 +464,24 @@ The file is written when closed, or when the flush function is called.
f-&gt;lock_file = open(file_name,O_WRONLY|O_CREAT|O_TRUNC, 0644);
<span style="color: #a020f0;">if</span> (f-&gt;lock_file &lt;= 0) {
<span style="color: #a020f0;">return</span> TREXIO_FAILURE;
<span style="color: #a020f0;">if</span> (file-&gt;mode != <span style="color: #8b2252;">'r'</span>) {
<span style="color: #a020f0;">return</span> TREXIO_ERRNO;
} <span style="color: #a020f0;">else</span> {
<span style="color: #a020f0;">if</span> (errno == EACCES) {
/* <span style="color: #b22222;">The directory is read-only and the lock file can't be written.</span>
<span style="color: #b22222;"> Create a dummy temporary file for dummy locking.</span>
<span style="color: #b22222;"> </span>*/
<span style="color: #228b22;">char</span> <span style="color: #a0522d;">dirname</span>[TREXIO_MAX_FILENAME_LENGTH] = <span style="color: #8b2252;">"/tmp/trexio.XXXXXX"</span>;
mkdtemp(dirname);
strncpy (file_name, dirname, TREXIO_MAX_FILENAME_LENGTH);
strncat (file_name, lock_file_name, TREXIO_MAX_FILENAME_LENGTH-strlen(lock_file_name));
f-&gt;lock_file = open(file_name,O_WRONLY|O_CREAT|O_TRUNC, 0644);
remove(file_name);
rmdir(dirname);
} <span style="color: #a020f0;">else</span> {
<span style="color: #a020f0;">return</span> TREXIO_ERRNO;
}
}
}
<span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
@ -510,8 +540,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org4abf98d" class="outline-3">
<h3 id="org4abf98d"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div id="outline-container-org715035c" class="outline-3">
<h3 id="org715035c"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div class="outline-text-3" id="text-1-4">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -536,8 +566,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-orgcf5bcc9" class="outline-3">
<h3 id="orgcf5bcc9"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div id="outline-container-org2d81245" class="outline-3">
<h3 id="org2d81245"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div class="outline-text-3" id="text-1-5">
<div class="org-src-container">
<pre class="src src-c">$group$_t*
@ -657,7 +687,7 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
}
<span style="color: #a020f0;">if</span> ($group$-&gt;$group_num$_isSet == <span style="color: #008b8b;">true</span>) {
<span style="color: #a020f0;">if</span> ($group$-&gt;$group_num$_isSet == <span style="color: #008b8b;">true</span>) {
rc = fscanf(f, <span style="color: #8b2252;">"%1023s"</span>, buffer);
assert(!((rc != 1) || (strcmp(buffer, <span style="color: #8b2252;">"$group_num$"</span>) != 0)));
<span style="color: #a020f0;">if</span> ((rc != 1) || (strcmp(buffer, <span style="color: #8b2252;">"$group_num$"</span>) != 0)) {
@ -798,7 +828,7 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
<span style="color: #a020f0;">for</span> (<span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">i</span>=0 ; i&lt;size_$group_dset$ ; ++i) {
$group$-&gt;$group_dset$[i] = tmp_$group_dset$;
/* <span style="color: #b22222;">conventional fcanf with "%s" only return the string before the first space character </span>
/* <span style="color: #b22222;">conventional fcanf with "%s" only return the string before the first space character</span>
<span style="color: #b22222;"> * to read string with spaces use "%[^\n]" possible with space before or after, i.e. " %[^\n]"</span>
<span style="color: #b22222;"> * Q: depending on what ? </span>*/
rc = fscanf(f, <span style="color: #8b2252;">" %1023[^\n]"</span>, tmp_$group_dset$);
@ -831,8 +861,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org466682a" class="outline-3">
<h3 id="org466682a"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div id="outline-container-org277f07e" class="outline-3">
<h3 id="org277f07e"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div class="outline-text-3" id="text-1-6">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -897,8 +927,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org9911daa" class="outline-3">
<h3 id="org9911daa"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div id="outline-container-org8a820e9" class="outline-3">
<h3 id="org8a820e9"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div class="outline-text-3" id="text-1-7">
<p>
Memory is allocated when reading. The following function frees memory.
@ -943,8 +973,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-org70b9291" class="outline-3">
<h3 id="org70b9291"><span class="section-number-3">1.8</span> Template for has/read/write the numerical attribute</h3>
<div id="outline-container-orga516891" class="outline-3">
<h3 id="orga516891"><span class="section-number-3">1.8</span> Template for has/read/write the numerical attribute</h3>
<div class="outline-text-3" id="text-1-8">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1007,8 +1037,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-orgbef125d" class="outline-3">
<h3 id="orgbef125d"><span class="section-number-3">1.9</span> Template for has/read/write the dataset of numerical data</h3>
<div id="outline-container-orge7bec40" class="outline-3">
<h3 id="orge7bec40"><span class="section-number-3">1.9</span> Template for has/read/write the dataset of numerical data</h3>
<div class="outline-text-3" id="text-1-9">
<p>
The <code>group_dset</code> array is assumed allocated with the appropriate size.
@ -1104,8 +1134,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-orgfe73035" class="outline-3">
<h3 id="orgfe73035"><span class="section-number-3">1.10</span> Template for has/read/write the dataset of strings</h3>
<div id="outline-container-org4034bdb" class="outline-3">
<h3 id="org4034bdb"><span class="section-number-3">1.10</span> Template for has/read/write the dataset of strings</h3>
<div class="outline-text-3" id="text-1-10">
<p>
The <code>group_dset</code> array is assumed allocated with the appropriate size.
@ -1174,7 +1204,7 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
<span style="color: #228b22;">size_t</span> <span style="color: #a0522d;">tmp_len</span> = strlen(dset[i]);
$group$-&gt;$group_dset$[i] = tmp_str;
strncpy(tmp_str, dset[i], tmp_len);
tmp_str += tmp_len + 1;
tmp_str += tmp_len + 1;
}
$group$-&gt;to_flush = 1;
@ -1206,8 +1236,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-org6712297" class="outline-3">
<h3 id="org6712297"><span class="section-number-3">1.11</span> Template for has/read/write the string attribute</h3>
<div id="outline-container-org9b83a67" class="outline-3">
<h3 id="org9b83a67"><span class="section-number-3">1.11</span> Template for has/read/write the string attribute</h3>
<div class="outline-text-3" id="text-1-11">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span>
@ -1281,12 +1311,12 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
</div>
<div id="outline-container-orgc059162" class="outline-3">
<h3 id="orgc059162"><span class="section-number-3">1.12</span> RDM struct (hard-coded)</h3>
<div id="outline-container-org02b19bb" class="outline-3">
<h3 id="org02b19bb"><span class="section-number-3">1.12</span> RDM struct (hard-coded)</h3>
<div class="outline-text-3" id="text-1-12">
</div>
<div id="outline-container-org5456979" class="outline-4">
<h4 id="org5456979"><span class="section-number-4">1.12.1</span> Read the complete struct</h4>
<div id="outline-container-org49287c3" class="outline-4">
<h4 id="org49287c3"><span class="section-number-4">1.12.1</span> Read the complete struct</h4>
<div class="outline-text-4" id="text-1-12-1">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">rdm_t</span>* <span style="color: #0000ff;">trexio_text_read_rdm</span>(<span style="color: #228b22;">trexio_text_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">file</span>);
@ -1381,8 +1411,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-orga7773c6" class="outline-4">
<h4 id="orga7773c6"><span class="section-number-4">1.12.2</span> Flush the complete struct</h4>
<div id="outline-container-orgd279259" class="outline-4">
<h4 id="orgd279259"><span class="section-number-4">1.12.2</span> Flush the complete struct</h4>
<div class="outline-text-4" id="text-1-12-2">
<div class="org-src-container">
<pre class="src src-c"><span style="color: #228b22;">trexio_exit_code</span> <span style="color: #0000ff;">trexio_text_flush_rdm</span>(<span style="color: #228b22;">trexio_text_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">file</span>);
@ -1424,8 +1454,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org57e739d" class="outline-4">
<h4 id="org57e739d"><span class="section-number-4">1.12.3</span> Free memory</h4>
<div id="outline-container-org133df6b" class="outline-4">
<h4 id="org133df6b"><span class="section-number-4">1.12.3</span> Free memory</h4>
<div class="outline-text-4" id="text-1-12-3">
<p>
Memory is allocated when reading. The followig function frees memory.
@ -1461,8 +1491,8 @@ Memory is allocated when reading. The followig function frees memory.
</div>
</div>
<div id="outline-container-orgcc4bafc" class="outline-4">
<h4 id="orgcc4bafc"><span class="section-number-4">1.12.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div id="outline-container-orgd7cbd35" class="outline-4">
<h4 id="orgd7cbd35"><span class="section-number-4">1.12.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-12-4">
<p>
The <code>one_e</code> array is assumed allocated with the appropriate size.
@ -1528,8 +1558,8 @@ The <code>one_e</code> array is assumed allocated with the appropriate size.
</div>
</div>
<div id="outline-container-org1a9d8f2" class="outline-4">
<h4 id="org1a9d8f2"><span class="section-number-4">1.12.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div id="outline-container-org3946190" class="outline-4">
<h4 id="org3946190"><span class="section-number-4">1.12.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-12-5">
<p>
<code>two_e</code> is a sparse data structure, which can be too large to fit
@ -1637,7 +1667,7 @@ file for each sparse float structure.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

104
trex.html
View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-10-13 Wed 12:26 -->
<!-- 2021-10-13 Wed 15:44 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>TREX Configuration file</title>
@ -333,25 +333,25 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org0b1c2f1">1. Metadata (metadata group)</a></li>
<li><a href="#org5cdd44d">2. Electron (electron group)</a></li>
<li><a href="#org410f0f6">3. Nucleus (nucleus group)</a></li>
<li><a href="#org4558c5e">4. Effective core potentials (ecp group)</a></li>
<li><a href="#org60d9009">5. Basis set (basis group)</a></li>
<li><a href="#org5c4c149">6. Atomic orbitals (ao group)</a>
<li><a href="#orgff81722">1. Metadata (metadata group)</a></li>
<li><a href="#org68c8a90">2. Electron (electron group)</a></li>
<li><a href="#orgbf052df">3. Nucleus (nucleus group)</a></li>
<li><a href="#orgbe43031">4. Effective core potentials (ecp group)</a></li>
<li><a href="#org98541a6">5. Basis set (basis group)</a></li>
<li><a href="#org507a0bb">6. Atomic orbitals (ao group)</a>
<ul>
<li><a href="#ao_one_e">6.1. One-electron integrals (<code>ao_1e_int</code> group)</a></li>
<li><a href="#ao_two_e">6.2. Two-electron integrals (<code>ao_2e_int</code> group)</a></li>
</ul>
</li>
<li><a href="#orgc5cdb87">7. Molecular orbitals (mo group)</a>
<li><a href="#org31840c7">7. Molecular orbitals (mo group)</a>
<ul>
<li><a href="#orgacbc232">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#orgbd2be63">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
<li><a href="#orga607072">7.1. One-electron integrals (<code>mo_1e_int</code> group)</a></li>
<li><a href="#org03e8f5a">7.2. Two-electron integrals (<code>mo_2e_int</code> group)</a></li>
</ul>
</li>
<li><a href="#orge0835b1">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#orgd406aae">9. <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</a></li>
<li><a href="#orgbd35971">8. <span class="todo TODO">TODO</span> Slater determinants</a></li>
<li><a href="#org9718db1">9. <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</a></li>
</ul>
</div>
</div>
@ -391,8 +391,8 @@ arrays are 0-based. Hence, we introduce the <code>index</code> type which is an
1-based <code>int</code> in the Fortran interface and 0-based otherwise.
</p>
<div id="outline-container-org0b1c2f1" class="outline-2">
<h2 id="org0b1c2f1"><span class="section-number-2">1</span> Metadata (metadata group)</h2>
<div id="outline-container-orgff81722" class="outline-2">
<h2 id="orgff81722"><span class="section-number-2">1</span> Metadata (metadata group)</h2>
<div class="outline-text-2" id="text-1">
<p>
As we expect our files to be archived in open-data repositories, we
@ -402,7 +402,7 @@ which have participated to the creation of the file, a list of
authors of the file, and a textual description.
</p>
<table id="orge1ebb37" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org00f297a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -469,15 +469,15 @@ authors of the file, and a textual description.
</div>
</div>
<div id="outline-container-org5cdd44d" class="outline-2">
<h2 id="org5cdd44d"><span class="section-number-2">2</span> Electron (electron group)</h2>
<div id="outline-container-org68c8a90" class="outline-2">
<h2 id="org68c8a90"><span class="section-number-2">2</span> Electron (electron group)</h2>
<div class="outline-text-2" id="text-2">
<p>
We consider wave functions expressed in the spin-free formalism, where
the number of &uarr; and &darr; electrons is fixed.
</p>
<table id="orgfa9fe93" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orga030124" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -516,15 +516,15 @@ the number of &uarr; and &darr; electrons is fixed.
</div>
</div>
<div id="outline-container-org410f0f6" class="outline-2">
<h2 id="org410f0f6"><span class="section-number-2">3</span> Nucleus (nucleus group)</h2>
<div id="outline-container-orgbf052df" class="outline-2">
<h2 id="orgbf052df"><span class="section-number-2">3</span> Nucleus (nucleus group)</h2>
<div class="outline-text-2" id="text-3">
<p>
The nuclei are considered as fixed point charges. Coordinates are
given in Cartesian \((x,y,z)\) format.
</p>
<table id="orga0e787e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org78ba037" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -584,8 +584,8 @@ given in Cartesian \((x,y,z)\) format.
</div>
</div>
<div id="outline-container-org4558c5e" class="outline-2">
<h2 id="org4558c5e"><span class="section-number-2">4</span> Effective core potentials (ecp group)</h2>
<div id="outline-container-orgbe43031" class="outline-2">
<h2 id="orgbe43031"><span class="section-number-2">4</span> Effective core potentials (ecp group)</h2>
<div class="outline-text-2" id="text-4">
<p>
An effective core potential (ECP) \(V_A^{\text{ECP}}\) replacing the
@ -613,7 +613,7 @@ The functions \(V_{A\ell}\) are parameterized as:
See <a href="http://dx.doi.org/10.1063/1.4984046">http://dx.doi.org/10.1063/1.4984046</a> for more info.
</p>
<table id="orgbb88d14" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org1fd5bc9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -722,8 +722,8 @@ See <a href="http://dx.doi.org/10.1063/1.4984046">http://dx.doi.org/10.1063/1.49
</div>
</div>
<div id="outline-container-org60d9009" class="outline-2">
<h2 id="org60d9009"><span class="section-number-2">5</span> Basis set (basis group)</h2>
<div id="outline-container-org98541a6" class="outline-2">
<h2 id="org98541a6"><span class="section-number-2">5</span> Basis set (basis group)</h2>
<div class="outline-text-2" id="text-5">
<p>
We consider here basis functions centered on nuclei. Hence, we enable
@ -776,7 +776,7 @@ If the the basis function is not considered normalized, \(\mathcal{N}_s=1\).
All the basis set parameters are stored in one-dimensional arrays:
</p>
<table id="org0788dd9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orge75a1c9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -945,8 +945,8 @@ prim_factor =
</div>
</div>
<div id="outline-container-org5c4c149" class="outline-2">
<h2 id="org5c4c149"><span class="section-number-2">6</span> Atomic orbitals (ao group)</h2>
<div id="outline-container-org507a0bb" class="outline-2">
<h2 id="org507a0bb"><span class="section-number-2">6</span> Atomic orbitals (ao group)</h2>
<div class="outline-text-2" id="text-6">
<p>
Going from the atomic basis set to AOs implies a systematic
@ -994,13 +994,13 @@ shell, as in the GAMESS convention where
<p>
In such a case, one should set the normalization of the shell (in
the <a href="#org60d9009">Basis set</a> section) to \(\mathcal{N}_{z^2}\), which is the
the <a href="#org98541a6">Basis set</a> section) to \(\mathcal{N}_{z^2}\), which is the
normalization factor of the atomic orbitals in spherical coordinates.
The normalization factor of the \(xy\) function which should be
introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
</p>
<table id="org0df4948" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org71d7e3c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1052,8 +1052,8 @@ introduced here should be \(\frac{\mathcal{N}_{xy}}{\mathcal{N}_{z^2}}\).
</table>
</div>
<div id="outline-container-org193f50c" class="outline-3">
<h3 id="ao_one_e"><a id="org193f50c"></a><span class="section-number-3">6.1</span> One-electron integrals (<code>ao_1e_int</code> group)</h3>
<div id="outline-container-orgcbb9ef2" class="outline-3">
<h3 id="ao_one_e"><a id="orgcbb9ef2"></a><span class="section-number-3">6.1</span> One-electron integrals (<code>ao_1e_int</code> group)</h3>
<div class="outline-text-3" id="text-ao_one_e">
<ul class="org-ul">
<li>\[ \hat{V}_{\text{ne}} = \sum_{A=1}^{N_\text{nucl}}
@ -1071,7 +1071,7 @@ The one-electron integrals for a one-electron operator \(\hat{O}\) are
over atomic orbitals.
</p>
<table id="org091b45e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orgbf00206" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1138,8 +1138,8 @@ over atomic orbitals.
</div>
</div>
<div id="outline-container-org112ada4" class="outline-3">
<h3 id="ao_two_e"><a id="org112ada4"></a><span class="section-number-3">6.2</span> Two-electron integrals (<code>ao_2e_int</code> group)</h3>
<div id="outline-container-orge452d09" class="outline-3">
<h3 id="ao_two_e"><a id="orge452d09"></a><span class="section-number-3">6.2</span> Two-electron integrals (<code>ao_2e_int</code> group)</h3>
<div class="outline-text-3" id="text-ao_two_e">
<p>
The two-electron integrals for a two-electron operator \(\hat{O}\) are
@ -1160,7 +1160,7 @@ notation.
\mathbf{r}_j \vert)}{\vert \mathbf{r}_i - \mathbf{r}_j \vert} \] : electron-electron long range potential</li>
</ul>
<table id="orgbadf9d9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org38edf27" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1200,10 +1200,10 @@ notation.
</div>
</div>
<div id="outline-container-orgc5cdb87" class="outline-2">
<h2 id="orgc5cdb87"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div id="outline-container-org31840c7" class="outline-2">
<h2 id="org31840c7"><span class="section-number-2">7</span> Molecular orbitals (mo group)</h2>
<div class="outline-text-2" id="text-7">
<table id="orgd28ed85" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org1b8c43b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1269,8 +1269,8 @@ notation.
</table>
</div>
<div id="outline-container-orgacbc232" class="outline-3">
<h3 id="orgacbc232"><span class="section-number-3">7.1</span> One-electron integrals (<code>mo_1e_int</code> group)</h3>
<div id="outline-container-orga607072" class="outline-3">
<h3 id="orga607072"><span class="section-number-3">7.1</span> One-electron integrals (<code>mo_1e_int</code> group)</h3>
<div class="outline-text-3" id="text-7-1">
<p>
The operators as the same as those defined in the
@ -1278,7 +1278,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="orgf6dd5e4" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org62856b9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1345,8 +1345,8 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-orgbd2be63" class="outline-3">
<h3 id="orgbd2be63"><span class="section-number-3">7.2</span> Two-electron integrals (<code>mo_2e_int</code> group)</h3>
<div id="outline-container-org03e8f5a" class="outline-3">
<h3 id="org03e8f5a"><span class="section-number-3">7.2</span> Two-electron integrals (<code>mo_2e_int</code> group)</h3>
<div class="outline-text-3" id="text-7-2">
<p>
The operators as the same as those defined in the
@ -1354,7 +1354,7 @@ The operators as the same as those defined in the
the basis of molecular orbitals.
</p>
<table id="org8280a53" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orge39b16b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1394,13 +1394,13 @@ the basis of molecular orbitals.
</div>
</div>
<div id="outline-container-orge0835b1" class="outline-2">
<h2 id="orge0835b1"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
<div id="outline-container-orgbd35971" class="outline-2">
<h2 id="orgbd35971"><span class="section-number-2">8</span> <span class="todo TODO">TODO</span> Slater determinants</h2>
</div>
<div id="outline-container-orgd406aae" class="outline-2">
<h2 id="orgd406aae"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</h2>
<div id="outline-container-org9718db1" class="outline-2">
<h2 id="org9718db1"><span class="section-number-2">9</span> <span class="todo TODO">TODO</span> Reduced density matrices (rdm group)</h2>
<div class="outline-text-2" id="text-9">
<table id="orgdd7182f" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org66c5564" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -1455,7 +1455,7 @@ the basis of molecular orbitals.
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-10-13 Wed 12:26</p>
<p class="date">Created: 2021-10-13 Wed 15:44</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>