1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-12-26 06:15:05 +01:00

Deploying to gh-pages from @ TREX-CoE/trexio@181fe988f3 🚀

This commit is contained in:
scemama 2021-05-06 17:41:32 +00:00
parent eebfa52ded
commit d0c04f3919
5 changed files with 153 additions and 207 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-05-06 Thu 16:26 -->
<!-- 2021-05-06 Thu 17:41 -->
<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>
@ -341,7 +341,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-05-06 Thu 16:26</p>
<p class="date">Created: 2021-05-06 Thu 17:41</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-05-06 Thu 16:26 -->
<!-- 2021-05-06 Thu 17:41 -->
<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>
@ -341,7 +341,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-05-06 Thu 16:26</p>
<p class="date">Created: 2021-05-06 Thu 17:41</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-05-06 Thu 16:26 -->
<!-- 2021-05-06 Thu 17:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
@ -310,39 +310,39 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org7e09a67">1. Coding conventions</a>
<li><a href="#org4a88dff">1. Coding conventions</a>
<ul>
<li><a href="#org65f9c9f">1.1. Memory allocation</a></li>
<li><a href="#orgabed1be">1.1. Memory allocation</a></li>
</ul>
</li>
<li><a href="#orga6c179d">2. Front end</a>
<li><a href="#org6648938">2. Front end</a>
<ul>
<li><a href="#orgcfdb6d4">2.1. Error handling</a></li>
<li><a href="#org561fe5a">2.2. Back ends</a></li>
<li><a href="#orgb5d6ad2">2.3. Read/write behavior</a></li>
<li><a href="#orga2a9354">2.4. TREXIO file type</a></li>
<li><a href="#org8afda3c">2.5. Polymorphism of the file handle</a></li>
<li><a href="#orge9d9442">2.6. File opening</a></li>
<li><a href="#orgeba6de8">2.7. File closing</a></li>
<li><a href="#orgf87104a">2.1. Error handling</a></li>
<li><a href="#orgf17e3b5">2.2. Back ends</a></li>
<li><a href="#orgb3d94df">2.3. Read/write behavior</a></li>
<li><a href="#orgb228279">2.4. TREXIO file type</a></li>
<li><a href="#orgaa0546c">2.5. Polymorphism of the file handle</a></li>
<li><a href="#orga001112">2.6. File opening</a></li>
<li><a href="#org01b5c32">2.7. File closing</a></li>
</ul>
</li>
<li><a href="#org502284a">3. Templates for front end</a>
<li><a href="#orgf9e2fe3">3. Templates for front end</a>
<ul>
<li><a href="#org5d551fe">3.1. Templates for front end has/read/write a dimension</a>
<li><a href="#org7271aba">3.1. Templates for front end has/read/write a dimension</a>
<ul>
<li><a href="#orgfca270d">3.1.1. C templates for front end</a></li>
<li><a href="#org70dfa9e">3.1.2. Fortran templates for front end</a></li>
<li><a href="#orgcd5b4e4">3.1.1. C templates for front end</a></li>
<li><a href="#org641fc0d">3.1.2. Fortran templates for front end</a></li>
</ul>
</li>
<li><a href="#orgeae4dcc">3.2. Templates for front end has/read/write a dataset</a>
<li><a href="#org955c4d8">3.2. Templates for front end has/read/write a dataset</a>
<ul>
<li><a href="#org57a212c">3.2.1. C templates for front end</a></li>
<li><a href="#orgd7ba6e6">3.2.2. Fortran templates for front end</a></li>
<li><a href="#org3b5a4ce">3.2.1. C templates for front end</a></li>
<li><a href="#orgef0ec92">3.2.2. Fortran templates for front end</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgc444773">4. Fortran helper/wrapper functions</a></li>
<li><a href="#orgc9905c2">4. Fortran helper/wrapper functions</a></li>
</ul>
</div>
</div>
@ -350,8 +350,8 @@ for the JavaScript code in this tag.
d+TITLE: Front end API
</p>
<div id="outline-container-org7e09a67" class="outline-2">
<h2 id="org7e09a67"><span class="section-number-2">1</span> Coding conventions</h2>
<div id="outline-container-org4a88dff" class="outline-2">
<h2 id="org4a88dff"><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>
@ -366,8 +366,8 @@ d+TITLE: Front end API
</ul>
</div>
<div id="outline-container-org65f9c9f" class="outline-3">
<h3 id="org65f9c9f"><span class="section-number-3">1.1</span> Memory allocation</h3>
<div id="outline-container-orgabed1be" class="outline-3">
<h3 id="orgabed1be"><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
@ -401,8 +401,8 @@ The maximum string size for the filenames is 4096 characters.
</div>
</div>
</div>
<div id="outline-container-orga6c179d" class="outline-2">
<h2 id="orga6c179d"><span class="section-number-2">2</span> Front end</h2>
<div id="outline-container-org6648938" class="outline-2">
<h2 id="org6648938"><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.
@ -410,10 +410,10 @@ TREXIO front end is modular, which simplifies implementation of new back ends.
</p>
</div>
<div id="outline-container-orgcfdb6d4" class="outline-3">
<h3 id="orgcfdb6d4"><span class="section-number-3">2.1</span> Error handling</h3>
<div id="outline-container-orgf87104a" class="outline-3">
<h3 id="orgf87104a"><span class="section-number-3">2.1</span> Error handling</h3>
<div class="outline-text-3" id="text-2-1">
<table id="org58789fb" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orga0099d6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
@ -695,8 +695,8 @@ The text strings are extracted from the previous table.
</div>
</div>
<div id="outline-container-org561fe5a" class="outline-3">
<h3 id="org561fe5a"><span class="section-number-3">2.2</span> Back ends</h3>
<div id="outline-container-orgf17e3b5" class="outline-3">
<h3 id="orgf17e3b5"><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:
@ -726,8 +726,8 @@ lines that correspond to the <code>TREXIO_JSON</code> back end (not implemented
</div>
</div>
</div>
<div id="outline-container-orgb5d6ad2" class="outline-3">
<h3 id="orgb5d6ad2"><span class="section-number-3">2.3</span> Read/write behavior</h3>
<div id="outline-container-orgb3d94df" class="outline-3">
<h3 id="orgb3d94df"><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
@ -755,8 +755,8 @@ concurrent programs, the behavior is not specified.
</p>
</div>
</div>
<div id="outline-container-orga2a9354" class="outline-3">
<h3 id="orga2a9354"><span class="section-number-3">2.4</span> TREXIO file type</h3>
<div id="outline-container-orgb228279" class="outline-3">
<h3 id="orgb228279"><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
@ -788,8 +788,8 @@ TREXIO files will have as a first argument the TREXIO file handle.
</div>
</div>
</div>
<div id="outline-container-org8afda3c" class="outline-3">
<h3 id="org8afda3c"><span class="section-number-3">2.5</span> Polymorphism of the file handle</h3>
<div id="outline-container-orgaa0546c" class="outline-3">
<h3 id="orgaa0546c"><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
@ -808,8 +808,8 @@ corresponding types for all back ends can be safely casted to
</div>
</div>
<div id="outline-container-orge9d9442" class="outline-3">
<h3 id="orge9d9442"><span class="section-number-3">2.6</span> File opening</h3>
<div id="outline-container-orga001112" class="outline-3">
<h3 id="orga001112"><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.
@ -971,8 +971,8 @@ should tend to avoid renaming the <code>.txt</code> data files.
</div>
</div>
<div id="outline-container-orgeba6de8" class="outline-3">
<h3 id="orgeba6de8"><span class="section-number-3">2.7</span> File closing</h3>
<div id="outline-container-org01b5c32" class="outline-3">
<h3 id="org01b5c32"><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.
@ -1071,8 +1071,8 @@ output:
</div>
</div>
<div id="outline-container-org502284a" class="outline-2">
<h2 id="org502284a"><span class="section-number-2">3</span> Templates for front end</h2>
<div id="outline-container-orgf9e2fe3" class="outline-2">
<h2 id="orgf9e2fe3"><span class="section-number-2">3</span> Templates for front end</h2>
<div class="outline-text-2" id="text-3">
<p>
Consider the following block of <code>trex.json</code>:
@ -1233,8 +1233,8 @@ TREXIO supports I/O with single or double precision for integer and floating poi
</div>
<div id="outline-container-org5d551fe" class="outline-3">
<h3 id="org5d551fe"><span class="section-number-3">3.1</span> Templates for front end has/read/write a dimension</h3>
<div id="outline-container-org7271aba" class="outline-3">
<h3 id="org7271aba"><span class="section-number-3">3.1</span> Templates for front end has/read/write a dimension</h3>
<div class="outline-text-3" id="text-3-1">
<p>
This section concerns API calls related to dimensioning variables.
@ -1303,8 +1303,8 @@ This section concerns API calls related to dimensioning variables.
</table>
</div>
<div id="outline-container-orgfca270d" class="outline-4">
<h4 id="orgfca270d"><span class="section-number-4">3.1.1</span> C templates for front end</h4>
<div id="outline-container-orgcd5b4e4" class="outline-4">
<h4 id="orgcd5b4e4"><span class="section-number-4">3.1.1</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-1-1">
<p>
The <code>C</code> templates that correspond to each of the abovementioned functions can be found below.
@ -1493,8 +1493,8 @@ The basic (non-suffixed) API call on dimensioning variables deals with single pr
</div>
</div>
<div id="outline-container-org70dfa9e" class="outline-4">
<h4 id="org70dfa9e"><span class="section-number-4">3.1.2</span> Fortran templates for front end</h4>
<div id="outline-container-org641fc0d" class="outline-4">
<h4 id="org641fc0d"><span class="section-number-4">3.1.2</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-1-2">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from Fortran.
@ -1580,8 +1580,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgeae4dcc" class="outline-3">
<h3 id="orgeae4dcc"><span class="section-number-3">3.2</span> Templates for front end has/read/write a dataset</h3>
<div id="outline-container-org955c4d8" class="outline-3">
<h3 id="org955c4d8"><span class="section-number-3">3.2</span> Templates for front end has/read/write a dataset</h3>
<div class="outline-text-3" id="text-3-2">
<p>
This section concerns API calls related to datasets.
@ -1650,8 +1650,8 @@ This section concerns API calls related to datasets.
</table>
</div>
<div id="outline-container-org57a212c" class="outline-4">
<h4 id="org57a212c"><span class="section-number-4">3.2.1</span> C templates for front end</h4>
<div id="outline-container-org3b5a4ce" class="outline-4">
<h4 id="org3b5a4ce"><span class="section-number-4">3.2.1</span> C templates for front end</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
The C templates that correspond to each of the abovementioned functions can be found below.
@ -1909,8 +1909,8 @@ The basic (non-suffixed) API call on datasets deals with double precision (see T
</div>
</div>
<div id="outline-container-orgd7ba6e6" class="outline-4">
<h4 id="orgd7ba6e6"><span class="section-number-4">3.2.2</span> Fortran templates for front end</h4>
<div id="outline-container-orgef0ec92" class="outline-4">
<h4 id="orgef0ec92"><span class="section-number-4">3.2.2</span> Fortran templates for front end</h4>
<div class="outline-text-4" id="text-3-2-2">
<p>
The <code>Fortran</code> templates that provide an access to the <code>C</code> API calls from <code>Fortran</code>.
@ -1997,8 +1997,8 @@ These templates are based on the use of <code>iso_c_binding</code>. Pointers hav
</div>
</div>
<div id="outline-container-orgc444773" class="outline-2">
<h2 id="orgc444773"><span class="section-number-2">4</span> Fortran helper/wrapper functions</h2>
<div id="outline-container-orgc9905c2" class="outline-2">
<h2 id="orgc9905c2"><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.
@ -2027,7 +2027,7 @@ Note, that Fortran interface calls the main <code>TREXIO</code> API, which is wr
</div>
<div id="postamble" class="status">
<p class="author">Author: TREX-CoE</p>
<p class="date">Created: 2021-05-06 Thu 16:26</p>
<p class="date">Created: 2021-05-06 Thu 17:41</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-05-06 Thu 16:26 -->
<!-- 2021-05-06 Thu 17:41 -->
<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,25 +311,25 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org420c928">1. HDF5 back end</a>
<li><a href="#org43f9252">1. HDF5 back end</a>
<ul>
<li><a href="#org67cb711">1.1. Template for HDF5 definitions</a></li>
<li><a href="#org1d222fe">1.2. Template for HDF5 structures</a></li>
<li><a href="#orgcde6185">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#orgef68e6e">1.4. Template for HDF5 has/read/write a number</a></li>
<li><a href="#orga34644f">1.5. Template for HDF5 has/read/write a dataset</a></li>
<li><a href="#orgc4a9c42">1.1. Template for HDF5 definitions</a></li>
<li><a href="#org8096adc">1.2. Template for HDF5 structures</a></li>
<li><a href="#org46d0465">1.3. Template for HDF5 init/deinit</a></li>
<li><a href="#org07bfe36">1.4. Template for HDF5 has/read/write a number</a></li>
<li><a href="#org1e623e7">1.5. Template for HDF5 has/read/write a dataset</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org420c928" class="outline-2">
<h2 id="org420c928"><span class="section-number-2">1</span> HDF5 back end</h2>
<div id="outline-container-org43f9252" class="outline-2">
<h2 id="org43f9252"><span class="section-number-2">1</span> HDF5 back end</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org67cb711" class="outline-3">
<h3 id="org67cb711"><span class="section-number-3">1.1</span> Template for HDF5 definitions</h3>
<div id="outline-container-orgc4a9c42" class="outline-3">
<h3 id="orgc4a9c42"><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>
@ -340,8 +340,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org1d222fe" class="outline-3">
<h3 id="org1d222fe"><span class="section-number-3">1.2</span> Template for HDF5 structures</h3>
<div id="outline-container-org8096adc" class="outline-3">
<h3 id="org8096adc"><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> {
@ -356,8 +356,8 @@ for the JavaScript code in this tag.
</div>
<div id="outline-container-orgcde6185" class="outline-3">
<h3 id="orgcde6185"><span class="section-number-3">1.3</span> Template for HDF5 init/deinit</h3>
<div id="outline-container-org46d0465" class="outline-3">
<h3 id="org46d0465"><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>
@ -440,8 +440,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgef68e6e" class="outline-3">
<h3 id="orgef68e6e"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write a number</h3>
<div id="outline-container-org07bfe36" class="outline-3">
<h3 id="org07bfe36"><span class="section-number-3">1.4</span> Template for HDF5 has/read/write a number</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>
@ -563,8 +563,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orga34644f" class="outline-3">
<h3 id="orga34644f"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write a dataset</h3>
<div id="outline-container-org1e623e7" class="outline-3">
<h3 id="org1e623e7"><span class="section-number-3">1.5</span> Template for HDF5 has/read/write a dataset</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>
@ -698,7 +698,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-05-06 Thu 16:26</p>
<p class="date">Created: 2021-05-06 Thu 17:41</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-05-06 Thu 16:26 -->
<!-- 2021-05-06 Thu 17:41 -->
<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,24 +311,24 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org1f49dec">1. TEXT back end</a>
<li><a href="#org9c21119">1. TEXT back end</a>
<ul>
<li><a href="#org24ec271">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#orgd4c9a41">1.2. Template for general structure in text back end</a></li>
<li><a href="#org67313c5">1.3. Initialize function (constant part)</a></li>
<li><a href="#org2ff193c">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#org4666ed2">1.5. Template for text read struct</a></li>
<li><a href="#org87048a0">1.6. Template for text flush struct</a></li>
<li><a href="#org910e8de">1.7. Template for text free memory</a></li>
<li><a href="#orgdc0b7b9">1.8. Template for has/read/write the <code>$group_num$</code> attribute</a></li>
<li><a href="#org5ca2fe8">1.9. Template for has/read/write the <code>$group_dset$</code> dataset</a></li>
<li><a href="#org1d64f2c">1.10. RDM struct (hard-coded)</a>
<li><a href="#org352572e">1.1. Template for group-related structures in text back end</a></li>
<li><a href="#org8d63d6a">1.2. Template for general structure in text back end</a></li>
<li><a href="#org935c427">1.3. Initialize function (constant part)</a></li>
<li><a href="#org6bf8241">1.4. Deinitialize function (templated part)</a></li>
<li><a href="#org2a7e1be">1.5. Template for text read struct</a></li>
<li><a href="#org2ba6d7e">1.6. Template for text flush struct</a></li>
<li><a href="#orgd32905c">1.7. Template for text free memory</a></li>
<li><a href="#org95b2121">1.8. Template for has/read/write the <code>$group_num$</code> attribute</a></li>
<li><a href="#org76a5763">1.9. Template for has/read/write the <code>$group_dset$</code> dataset</a></li>
<li><a href="#org87c40fa">1.10. RDM struct (hard-coded)</a>
<ul>
<li><a href="#orgbf33676">1.10.1. Read the complete struct</a></li>
<li><a href="#org23450f3">1.10.2. Flush the complete struct</a></li>
<li><a href="#org610ea72">1.10.3. Free memory</a></li>
<li><a href="#org7a191c5">1.10.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#org44fc972">1.10.5. Read/Write the two<sub>e</sub> attribute</a></li>
<li><a href="#orga859f9a">1.10.1. Read the complete struct</a></li>
<li><a href="#orgf6b99b1">1.10.2. Flush the complete struct</a></li>
<li><a href="#org23f30e9">1.10.3. Free memory</a></li>
<li><a href="#orgaee8746">1.10.4. Read/Write the one<sub>e</sub> attribute</a></li>
<li><a href="#org5da0194">1.10.5. Read/Write the two<sub>e</sub> attribute</a></li>
</ul>
</li>
</ul>
@ -337,8 +337,8 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-org1f49dec" class="outline-2">
<h2 id="org1f49dec"><span class="section-number-2">1</span> TEXT back end</h2>
<div id="outline-container-org9c21119" class="outline-2">
<h2 id="org9c21119"><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
@ -359,25 +359,25 @@ The file is written when closed, or when the flush function is called.
</p>
</div>
<div id="outline-container-org24ec271" class="outline-3">
<h3 id="org24ec271"><span class="section-number-3">1.1</span> Template for group-related structures in text back end</h3>
<div id="outline-container-org352572e" class="outline-3">
<h3 id="org352572e"><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 {
uint64_t $group_num$;
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">file</span>;
$group_dset_dtype$* $group_dset$;
<span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">rank_$group_dset$</span>;
<span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">to_flush</span>;
<span style="color: #228b22;">uint64_t</span> <span style="color: #a0522d;">dims_$group_dset$</span>[16];
<span style="color: #228b22;">char</span> <span style="color: #a0522d;">file_name</span>[TREXIO_MAX_FILENAME_LENGTH];
} $group$_t;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd4c9a41" class="outline-3">
<h3 id="orgd4c9a41"><span class="section-number-3">1.2</span> Template for general structure in text back end</h3>
<div id="outline-container-org8d63d6a" class="outline-3">
<h3 id="org8d63d6a"><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> {
@ -385,8 +385,8 @@ The file is written when closed, or when the flush function is called.
<span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">to_flush</span>;
<span style="color: #228b22;">uint32_t</span> <span style="color: #a0522d;">padding</span>;
<span style="color: #228b22;">double</span>* <span style="color: #a0522d;">one_e</span>;
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">file</span>;
<span style="color: #228b22;">char</span>* <span style="color: #a0522d;">two_e_file_name</span>;
<span style="color: #228b22;">char</span> <span style="color: #a0522d;">file_name</span>[TREXIO_MAX_FILENAME_LENGTH];
<span style="color: #228b22;">char</span> <span style="color: #a0522d;">two_e_file_name</span>[TREXIO_MAX_FILENAME_LENGTH];
} <span style="color: #228b22;">rdm_t</span>;
</pre>
</div>
@ -403,8 +403,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org67313c5" class="outline-3">
<h3 id="org67313c5"><span class="section-number-3">1.3</span> Initialize function (constant part)</h3>
<div id="outline-container-org935c427" class="outline-3">
<h3 id="org935c427"><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>
@ -434,7 +434,7 @@ The file is written when closed, or when the flush function is called.
/* <span style="color: #b22222;">Create the lock file in the directory </span>*/
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>* <span style="color: #a0522d;">lock_file_name</span> = <span style="color: #8b2252;">"/.lock"</span>;
<span style="color: #228b22;">char</span>* <span style="color: #a0522d;">file_name</span> = CALLOC(TREXIO_MAX_FILENAME_LENGTH, <span style="color: #228b22;">char</span>);
<span style="color: #228b22;">char</span> <span style="color: #a0522d;">file_name</span>[TREXIO_MAX_FILENAME_LENGTH];
<span style="color: #a020f0;">if</span> (file_name == <span style="color: #008b8b;">NULL</span>) {
<span style="color: #a020f0;">return</span> TREXIO_ALLOCATION_FAILED;
@ -444,12 +444,10 @@ The file is written when closed, or when the flush function is called.
strncat (file_name, lock_file_name, TREXIO_MAX_FILENAME_LENGTH-strlen(lock_file_name));
<span style="color: #a020f0;">if</span> (file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE(file_name);
<span style="color: #a020f0;">return</span> TREXIO_ALLOCATION_FAILED;
<span style="color: #a020f0;">return</span> TREXIO_LOCK_ERROR;
}
f-&gt;lock_file = open(file_name,O_WRONLY|O_CREAT|O_TRUNC, 0644);
FREE(file_name);
<span style="color: #a020f0;">if</span> (f-&gt;lock_file &lt;= 0) {
<span style="color: #a020f0;">return</span> TREXIO_FAILURE;
@ -511,8 +509,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org2ff193c" class="outline-3">
<h3 id="org2ff193c"><span class="section-number-3">1.4</span> Deinitialize function (templated part)</h3>
<div id="outline-container-org6bf8241" class="outline-3">
<h3 id="org6bf8241"><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 +534,8 @@ The file is written when closed, or when the flush function is called.
</div>
</div>
<div id="outline-container-org4666ed2" class="outline-3">
<h3 id="org4666ed2"><span class="section-number-3">1.5</span> Template for text read struct</h3>
<div id="outline-container-org2a7e1be" class="outline-3">
<h3 id="org2a7e1be"><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*
@ -559,25 +557,23 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
/* <span style="color: #b22222;">Build the file name </span>*/
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>* $group$_file_name = <span style="color: #8b2252;">"/$group$.txt"</span>;
<span style="color: #228b22;">char</span> * <span style="color: #a0522d;">file_name</span> = CALLOC(TREXIO_MAX_FILENAME_LENGTH, <span style="color: #228b22;">char</span>);
<span style="color: #a020f0;">if</span> (file_name == <span style="color: #008b8b;">NULL</span>) {
<span style="color: #a020f0;">if</span> ($group$-&gt;file_name == <span style="color: #008b8b;">NULL</span>) {
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
}
strncpy (file_name, file-&gt;parent.file_name, TREXIO_MAX_FILENAME_LENGTH);
strncat (file_name, $group$_file_name,
strncpy ($group$-&gt;file_name, file-&gt;parent.file_name, TREXIO_MAX_FILENAME_LENGTH);
strncat ($group$-&gt;file_name, $group$_file_name,
TREXIO_MAX_FILENAME_LENGTH-strlen($group$_file_name));
<span style="color: #a020f0;">if</span> (file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE(file_name);
<span style="color: #a020f0;">if</span> ($group$-&gt;file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
}
/* <span style="color: #b22222;">If the file exists, read it </span>*/
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen(file_name,<span style="color: #8b2252;">"r"</span>);
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen($group$-&gt;file_name,<span style="color: #8b2252;">"r"</span>);
<span style="color: #a020f0;">if</span> (f != <span style="color: #008b8b;">NULL</span>) {
/* <span style="color: #b22222;">Find size of file to allocate the max size of the string buffer </span>*/
@ -588,7 +584,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
sz = (sz &lt; 1024) ? (1024) : (sz);
<span style="color: #228b22;">char</span>* <span style="color: #a0522d;">buffer</span> = CALLOC(sz, <span style="color: #228b22;">char</span>);
<span style="color: #a020f0;">if</span> (buffer == <span style="color: #008b8b;">NULL</span>) {
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -600,7 +595,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
rc = fscanf(f, <span style="color: #8b2252;">"%1023s"</span>, buffer);
<span style="color: #a020f0;">if</span> ((rc != 1) || (strcmp(buffer, <span style="color: #8b2252;">"rank_$group_dset$"</span>) != 0)) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -609,7 +603,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
rc = fscanf(f, <span style="color: #8b2252;">"%u"</span>, &amp;($group$-&gt;rank_$group_dset$));
<span style="color: #a020f0;">if</span> (rc != 1) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -626,7 +619,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
rc = fscanf(f, <span style="color: #8b2252;">"%1023s %u"</span>, buffer, &amp;j);
<span style="color: #a020f0;">if</span> ((rc != 2) || (strcmp(buffer, <span style="color: #8b2252;">"dims_$group_dset$"</span>) != 0) || (j!=i)) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -636,7 +628,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
assert(!(rc != 1));
<span style="color: #a020f0;">if</span> (rc != 1) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -652,7 +643,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
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)) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -662,7 +652,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
assert(!(rc != 1));
<span style="color: #a020f0;">if</span> (rc != 1) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -675,7 +664,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
assert (!($group$-&gt;$group_dset$ == <span style="color: #008b8b;">NULL</span>));
<span style="color: #a020f0;">if</span> ($group$-&gt;$group_dset$ == <span style="color: #008b8b;">NULL</span>) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -685,7 +673,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
assert(!((rc != 1) || (strcmp(buffer, <span style="color: #8b2252;">"$group_dset$"</span>) != 0)));
<span style="color: #a020f0;">if</span> ((rc != 1) || (strcmp(buffer, <span style="color: #8b2252;">"$group_dset$"</span>) != 0)) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$-&gt;$group_dset$);
FREE($group$);
@ -697,7 +684,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
assert(!(rc != 1));
<span style="color: #a020f0;">if</span> (rc != 1) {
FREE(buffer);
FREE(file_name);
fclose(f);
FREE($group$-&gt;$group_dset$);
FREE($group$);
@ -711,20 +697,6 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
f = <span style="color: #008b8b;">NULL</span>;
}
<span style="color: #a020f0;">if</span> (file-&gt;parent.mode == <span style="color: #8b2252;">'w'</span>) {
$group$-&gt;file = fopen(file_name,<span style="color: #8b2252;">"a"</span>);
} <span style="color: #a020f0;">else</span> {
$group$-&gt;file = fopen(file_name,<span style="color: #8b2252;">"r"</span>);
}
FREE(file_name);
assert (!($group$-&gt;file == <span style="color: #008b8b;">NULL</span>));
<span style="color: #a020f0;">if</span> ($group$-&gt;file == <span style="color: #008b8b;">NULL</span>) {
FREE($group$-&gt;$group_dset$);
FREE($group$);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
}
fseek($group$-&gt;file, 0L, SEEK_SET);
file-&gt;$group$ = $group$;
<span style="color: #a020f0;">return</span> $group$;
@ -734,8 +706,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org87048a0" class="outline-3">
<h3 id="org87048a0"><span class="section-number-3">1.6</span> Template for text flush struct</h3>
<div id="outline-container-org2ba6d7e" class="outline-3">
<h3 id="org2ba6d7e"><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>
@ -752,9 +724,10 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
<span style="color: #a020f0;">if</span> ($group$-&gt;to_flush == 0) <span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = $group$-&gt;file;
assert (file-&gt;parent.mode == <span style="color: #8b2252;">'w'</span>);
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen($group$-&gt;file_name, <span style="color: #8b2252;">"w"</span>);
<span style="color: #a020f0;">if</span> (f == <span style="color: #008b8b;">NULL</span>) <span style="color: #a020f0;">return</span> TREXIO_INVALID_ARG_1;
fseek(f, 0L, SEEK_SET);
/* <span style="color: #b22222;">Write the dimensioning variables </span>*/
// <span style="color: #b22222;">START REPEAT GROUP_DSET</span>
@ -783,7 +756,7 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
}
// <span style="color: #b22222;">END REPEAT GROUP_DSET</span>
fflush(f);
fclose(f);
$group$-&gt;to_flush = 0;
<span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
@ -793,8 +766,8 @@ trexio_text_read_$group$ (<span style="color: #228b22;">trexio_text_t</span>* <s
</div>
</div>
<div id="outline-container-org910e8de" class="outline-3">
<h3 id="org910e8de"><span class="section-number-3">1.7</span> Template for text free memory</h3>
<div id="outline-container-orgd32905c" class="outline-3">
<h3 id="orgd32905c"><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.
@ -815,11 +788,6 @@ Memory is allocated when reading. The following function frees memory.
$group$_t* $group$ = file-&gt;$group$;
<span style="color: #a020f0;">if</span> ($group$ == <span style="color: #008b8b;">NULL</span>) <span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
<span style="color: #a020f0;">if</span> ($group$-&gt;file != <span style="color: #008b8b;">NULL</span>) {
fclose($group$-&gt;file);
$group$-&gt;file = <span style="color: #008b8b;">NULL</span>;
}
// <span style="color: #b22222;">START REPEAT GROUP_DSET</span>
<span style="color: #a020f0;">if</span> ($group$-&gt;$group_dset$ != <span style="color: #008b8b;">NULL</span>) {
FREE ($group$-&gt;$group_dset$);
@ -835,8 +803,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-orgdc0b7b9" class="outline-3">
<h3 id="orgdc0b7b9"><span class="section-number-3">1.8</span> Template for has/read/write the <code>$group_num$</code> attribute</h3>
<div id="outline-container-org95b2121" class="outline-3">
<h3 id="org95b2121"><span class="section-number-3">1.8</span> Template for has/read/write the <code>$group_num$</code> 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>
@ -898,8 +866,8 @@ Memory is allocated when reading. The following function frees memory.
</div>
</div>
<div id="outline-container-org5ca2fe8" class="outline-3">
<h3 id="org5ca2fe8"><span class="section-number-3">1.9</span> Template for has/read/write the <code>$group_dset$</code> dataset</h3>
<div id="outline-container-org76a5763" class="outline-3">
<h3 id="org76a5763"><span class="section-number-3">1.9</span> Template for has/read/write the <code>$group_dset$</code> dataset</h3>
<div class="outline-text-3" id="text-1-9">
<p>
The <code>group_dset</code> array is assumed allocated with the appropriate size.
@ -996,12 +964,12 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org1d64f2c" class="outline-3">
<h3 id="org1d64f2c"><span class="section-number-3">1.10</span> RDM struct (hard-coded)</h3>
<div id="outline-container-org87c40fa" class="outline-3">
<h3 id="org87c40fa"><span class="section-number-3">1.10</span> RDM struct (hard-coded)</h3>
<div class="outline-text-3" id="text-1-10">
</div>
<div id="outline-container-orgbf33676" class="outline-4">
<h4 id="orgbf33676"><span class="section-number-4">1.10.1</span> Read the complete struct</h4>
<div id="outline-container-orga859f9a" class="outline-4">
<h4 id="orga859f9a"><span class="section-number-4">1.10.1</span> Read the complete struct</h4>
<div class="outline-text-4" id="text-1-10-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>);
@ -1019,27 +987,23 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
assert (rdm != <span style="color: #008b8b;">NULL</span>);
rdm-&gt;one_e = <span style="color: #008b8b;">NULL</span>;
rdm-&gt;two_e_file_name = <span style="color: #008b8b;">NULL</span>;
rdm-&gt;file = <span style="color: #008b8b;">NULL</span>;
rdm-&gt;two_e_file_name[0] = <span style="color: #8b2252;">'\0'</span>;
rdm-&gt;to_flush = 0;
/* <span style="color: #b22222;">Try to open the file. If the file does not exist, return </span>*/
<span style="color: #a020f0;">const</span> <span style="color: #228b22;">char</span>* <span style="color: #a0522d;">rdm_file_name</span> = <span style="color: #8b2252;">"/rdm.txt"</span>;
<span style="color: #228b22;">char</span>* <span style="color: #a0522d;">file_name</span> = CALLOC(TREXIO_MAX_FILENAME_LENGTH, <span style="color: #228b22;">char</span>);
assert (file_name != <span style="color: #008b8b;">NULL</span>);
strncpy (file_name, file-&gt;parent.file_name, TREXIO_MAX_FILENAME_LENGTH);
strncpy (rdm-&gt;file_name, file-&gt;parent.file_name, TREXIO_MAX_FILENAME_LENGTH);
strncat (file_name, rdm_file_name,
strncat (rdm-&gt;file_name, rdm_file_name,
TREXIO_MAX_FILENAME_LENGTH-strlen(rdm_file_name));
<span style="color: #a020f0;">if</span> (file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE(file_name);
<span style="color: #a020f0;">if</span> (rdm-&gt;file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE(rdm);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
}
/* <span style="color: #b22222;">If the file exists, read it </span>*/
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen(file_name,<span style="color: #8b2252;">"r"</span>);
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen(rdm-&gt;file_name,<span style="color: #8b2252;">"r"</span>);
<span style="color: #a020f0;">if</span> (f != <span style="color: #008b8b;">NULL</span>) {
/* <span style="color: #b22222;">Find size of file to allocate the max size of the string buffer </span>*/
@ -1079,13 +1043,10 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
rc = fscanf(f, <span style="color: #8b2252;">"%1023s"</span>, buffer);
assert (rc == 1);
rdm-&gt;two_e_file_name = CALLOC(TREXIO_MAX_FILENAME_LENGTH,<span style="color: #228b22;">char</span>);
strncpy(rdm-&gt;two_e_file_name, buffer, 1024);
<span style="color: #a020f0;">if</span> (rdm-&gt;two_e_file_name[TREXIO_MAX_FILENAME_LENGTH-1] != <span style="color: #8b2252;">'\0'</span>) {
FREE(file_name);
FREE(buffer);
FREE(rdm-&gt;one_e);
FREE(rdm-&gt;two_e_file_name);
FREE(rdm);
fclose(f);
<span style="color: #a020f0;">return</span> <span style="color: #008b8b;">NULL</span>;
@ -1095,12 +1056,6 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
fclose(f);
f = <span style="color: #008b8b;">NULL</span>;
}
<span style="color: #a020f0;">if</span> (file-&gt;parent.mode == <span style="color: #8b2252;">'w'</span>) {
rdm-&gt;file = fopen(file_name,<span style="color: #8b2252;">"a"</span>);
} <span style="color: #a020f0;">else</span> {
rdm-&gt;file = fopen(file_name,<span style="color: #8b2252;">"r"</span>);
}
FREE(file_name);
file-&gt;rdm = rdm ;
<span style="color: #a020f0;">return</span> rdm;
}
@ -1109,8 +1064,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org23450f3" class="outline-4">
<h4 id="org23450f3"><span class="section-number-4">1.10.2</span> Flush the complete struct</h4>
<div id="outline-container-orgf6b99b1" class="outline-4">
<h4 id="orgf6b99b1"><span class="section-number-4">1.10.2</span> Flush the complete struct</h4>
<div class="outline-text-4" id="text-1-10-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>);
@ -1128,9 +1083,9 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
<span style="color: #a020f0;">if</span> (rdm-&gt;to_flush == 0) <span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = rdm-&gt;file;
<span style="color: #228b22;">FILE</span>* <span style="color: #a0522d;">f</span> = fopen(rdm-&gt;file_name,<span style="color: #8b2252;">"w"</span>);
assert (f != <span style="color: #008b8b;">NULL</span>);
fseek(f, 0L, SEEK_SET);
/* <span style="color: #b22222;">Write the dimensioning variables </span>*/
fprintf(f, <span style="color: #8b2252;">"num %"</span> PRIu64 <span style="color: #8b2252;">"\n"</span>, rdm-&gt;dim_one_e);
@ -1144,7 +1099,7 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
fprintf(f, <span style="color: #8b2252;">"two_e_file_name\n"</span>);
fprintf(f, <span style="color: #8b2252;">"%s\n"</span>, rdm-&gt;two_e_file_name);
fflush(f);
fclose(f);
rdm-&gt;to_flush = 0;
<span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
}
@ -1153,8 +1108,8 @@ The <code>group_dset</code> array is assumed allocated with the appropriate size
</div>
</div>
<div id="outline-container-org610ea72" class="outline-4">
<h4 id="org610ea72"><span class="section-number-4">1.10.3</span> Free memory</h4>
<div id="outline-container-org23f30e9" class="outline-4">
<h4 id="org23f30e9"><span class="section-number-4">1.10.3</span> Free memory</h4>
<div class="outline-text-4" id="text-1-10-3">
<p>
Memory is allocated when reading. The followig function frees memory.
@ -1177,19 +1132,10 @@ Memory is allocated when reading. The followig function frees memory.
<span style="color: #228b22;">rdm_t</span>* <span style="color: #a020f0;">const</span> <span style="color: #a0522d;">rdm</span> = file-&gt;rdm;
<span style="color: #a020f0;">if</span> (rdm == <span style="color: #008b8b;">NULL</span>) <span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
<span style="color: #a020f0;">if</span> (rdm-&gt;file != <span style="color: #008b8b;">NULL</span>) {
fclose(rdm-&gt;file);
rdm-&gt;file = <span style="color: #008b8b;">NULL</span>;
}
<span style="color: #a020f0;">if</span> (rdm-&gt;one_e != <span style="color: #008b8b;">NULL</span>) {
FREE (rdm-&gt;one_e);
}
<span style="color: #a020f0;">if</span> (rdm-&gt;two_e_file_name != <span style="color: #008b8b;">NULL</span>) {
FREE (rdm-&gt;two_e_file_name);
}
free (rdm);
file-&gt;rdm = <span style="color: #008b8b;">NULL</span>;
<span style="color: #a020f0;">return</span> TREXIO_SUCCESS;
@ -1199,8 +1145,8 @@ Memory is allocated when reading. The followig function frees memory.
</div>
</div>
<div id="outline-container-org7a191c5" class="outline-4">
<h4 id="org7a191c5"><span class="section-number-4">1.10.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div id="outline-container-orgaee8746" class="outline-4">
<h4 id="orgaee8746"><span class="section-number-4">1.10.4</span> Read/Write the one<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-10-4">
<p>
The <code>one_e</code> array is assumed allocated with the appropriate size.
@ -1266,8 +1212,8 @@ The <code>one_e</code> array is assumed allocated with the appropriate size.
</div>
</div>
<div id="outline-container-org44fc972" class="outline-4">
<h4 id="org44fc972"><span class="section-number-4">1.10.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div id="outline-container-org5da0194" class="outline-4">
<h4 id="org5da0194"><span class="section-number-4">1.10.5</span> Read/Write the two<sub>e</sub> attribute</h4>
<div class="outline-text-4" id="text-1-10-5">
<p>
<code>two_e</code> is a sparse data structure, which can be too large to fit
@ -1375,7 +1321,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-05-06 Thu 16:26</p>
<p class="date">Created: 2021-05-06 Thu 17:41</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>