incomp-flame-post/fortran_api/module/m_calculate.html
2026-06-05 13:27:38 +00:00

1084 lines
No EOL
30 KiB
HTML

<!-- -*- mode: jinja2 -*- -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Tridiagonal compact finite difference solver, mathematical operators, and MPI-IO drivers.">
<meta name="author" content="Google DeepMind Team & Ignis" >
<link rel="icon" href="../favicon.png">
<title>m_calculate &ndash; HPC DNS Post-Processing Fortran Core</title>
<!-- Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<!-- Font Awesome -->
<link href="../css/fontawesome.min.css" rel="stylesheet">
<link href="../css/brands.min.css" rel="stylesheet">
<link href="../css/regular.min.css" rel="stylesheet">
<link href="../css/solid.min.css" rel="stylesheet">
<link href="../css/v4-font-face.min.css" rel="stylesheet">
<link href="../css/v4-shims.min.css" rel="stylesheet">
<!-- MathJax -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.9/MathJax.js?config=TeX-AMS-MML_HTMLorMML" async
integrity="sha256-DViIOMYdwlM/axqoGDPeUyf0urLoHMN4QACBKyB58Uw=" crossorigin="anonymous"></script>
<!-- Other scripts and stylesheets -->
<link href="../css/local.css" rel="stylesheet">
<link href="../css/pygments.css" rel="stylesheet">
<script src="../js/svg-pan-zoom.min.js"></script>
</head>
<body>
<!-- Fixed navbar -->
<div class="container-fluid mb-sm-4 mb-xl-2">
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<div class="container">
<a class="navbar-brand" href="../index.html">HPC DNS Post-Processing Fortran Core <small>1.0.0</small></a>
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar"
aria-expanded="false" aria-controls="navbar" aria-label="Toggle navigation">
<span class="navbar-toggler-icon">
</button>
<div id="navbar" class="navbar-collapse collapse">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="../lists/files.html">Source Files</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../lists/modules.html">Modules</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../lists/procedures.html">Procedures</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../lists/programs.html">Programs</a>
</li>
</ul>
<div class="d-flex align-items-end flex-grow-1">
<form action="../search.html" role="search" class="ms-auto">
<input type="text" class="form-control" aria-label="Search" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
</form>
</div>
</div><!--/.nav-collapse -->
</div>
</nav>
</div>
<div class="container">
<div class="row">
<h1>m_calculate
<small>Module</small>
</h1>
<div class="container p-2 mb-4 bg-light border rounded-3">
<div class="row align-items-center justify-content-between" id="info-bar">
<div class="col">
<ul class="list-inline" style="margin-bottom:0px;display:inline">
<li class="list-inline-item" id="meta-author"><i class="fa fa-pencil"></i> Google DeepMind Team & Ignis</li>
<li class="list-inline-item" id="statements"><i class="fa fa-list-ol"></i>
<a data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true"
title="17.0% of total for modules and submodules.">185 statements</a>
</li>
<li class="list-inline-item" id="source-file">
<i class="fa fa-code"></i>
<a href="../src/m_calculate.f90"> Source File</a>
</li>
</ul>
</div>
<div class="col">
<nav aria-label="breadcrumb">
<ol class="breadcrumb justify-content-end mb-0">
<li class="breadcrumb-item"><a href='../sourcefile/m_calculate.f90.html'>m_calculate.f90</a></li>
<li class="breadcrumb-item active" aria-current="page">m_calculate</li>
</ol>
</nav>
</div>
</div>
</div>
<script>
// Enable Bootstrap tooltips
(function () {
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
})();
</script>
</div>
<div class="row">
<div class="col-md-3">
<div id="sidebar">
<h3>Contents</h3>
<div class="card mb-4">
<a data-bs-toggle="collapse" href="#funcs-0"
aria-expanded="false" aria-controls="funcs-0">
<h4 class="card-header bg-primary text-white">Functions</h4>
</a>
<div id="funcs-0" class="collapse">
<div class="list-group list-group-flush">
<a class="list-group-item" href="../module/m_calculate.html#proc-rxn_rate">rxn_rate</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-threshold_min_max">threshold_min_max</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-positive">positive</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-negative">negative</a>
</div>
</div>
</div>
<div class="card mb-4">
<a data-bs-toggle="collapse" href="#subs-0"
aria-expanded="false" aria-controls="subs-0">
<h4 class="card-header bg-primary text-white">Subroutines</h4>
</a>
<div id="subs-0" class="collapse">
<div class="list-group list-group-flush">
<a class="list-group-item" href="../module/m_calculate.html#proc-m_calculate_init">m_calculate_init</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-m_calculate_finalize">m_calculate_finalize</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-ddx1d">ddx1d</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-ddx">ddx</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-ddy">ddy</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-ddz">ddz</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-d2dx1d">d2dx1d</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-d2dx">d2dx</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-d2dy">d2dy</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-d2dz">d2dz</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-tp">tp</a>
<a class="list-group-item" href="../module/m_calculate.html#proc-tp2">tp2</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-9" id='text'>
<p>This module calculates spatial derivatives (first and second spatial derivatives in X, Y, Z directions like ddx, ddy, ddz, etc.)
using high-order compact finite difference schemes. It also calculates chemical reaction rates,
positive/negative component extraction, and threshold operations, incorporating memory cache
efficiency (cache blocking) and transpose optimization operations (<code>tp2</code>).</p>
<br> <div class="card mb-4">
<h3 class="card-header card-title bg-light">Uses</h3>
<div class="card-body">
<ul class="list-group list-group-flush">
<li class="list-group-item">
<ul class="list-inline">
<li class="list-inline-item"><a href='http://fortranwiki.org/fortran/show/iso_fortran_env'>iso_fortran_env</a></li>
<li class="list-inline-item"><a href='m_parameters.html'>m_parameters</a></li>
<li class="list-inline-item"><a href='compact.html'>Compact</a></li>
</ul>
</li>
</ul>
</div>
</div>
<br>
<section>
<h2>Functions</h2>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-rxn_rate"></span> <h3>public function <a href='../proc/rxn_rate.html'>rxn_rate</a>(c)
</h3></div>
<div class="card-body">
<p>Computes the chemical reaction rate based on the progress variable c.</p><a href="../proc/rxn_rate.html" class="pull-right"><emph>Read more&hellip;</emph></a>
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-c~4"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>c</strong></td>
<td>
<p>The progress variable (0.0 to 1.0).</p>
</td>
</tr>
</tbody>
</table>
<h4>
Return Value
<small>real(kind=real64)</small>
</h4>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-threshold_min_max"></span> <h3>public function <a href='../proc/threshold_min_max.html'>threshold_min_max</a>(c, minc, maxc)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-c~5"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>c</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-minc"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>minc</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-maxc"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>maxc</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
<h4>
Return Value
<small>real(kind=real64)</small>
</h4>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-positive"></span> <h3>public function <a href='../proc/positive.html'>positive</a>(c)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-c~6"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>c</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
<h4>
Return Value
<small>real(kind=real64)</small>
</h4>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-negative"></span> <h3>public function <a href='../proc/negative.html'>negative</a>(c)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-c~7"></span>
real(kind=real64)
</td>
<td></td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>c</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
<h4>
Return Value
<small>real(kind=real64)</small>
</h4>
</div>
</div>
</section>
<br>
<section>
<h2>Subroutines</h2>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-m_calculate_init"></span> <h3>public subroutine <a href='../proc/m_calculate_init.html'>m_calculate_init</a>()
</h3></div>
<div class="card-body">
<p>Initializes the workspace arrays and matrices.</p><a href="../proc/m_calculate_init.html" class="pull-right"><emph>Read more&hellip;</emph></a>
<h4>Arguments</h4>
<em>None</em>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-m_calculate_finalize"></span> <h3>public subroutine <a href='../proc/m_calculate_finalize.html'>m_calculate_finalize</a>()
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<em>None</em>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-ddx1d"></span> <h3>public subroutine <a href='../proc/ddx1d.html'>ddx1d</a>(dst, src)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(1,nxp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(1,nxp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-ddx"></span> <h3>public subroutine <a href='../proc/ddx.html'>ddx</a>(dst, src)
</h3></div>
<div class="card-body">
<p>Computes the first-order derivative in the X-direction.</p>
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~2"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
<p>3D output derivative field (nxp, nyp, nzp).</p>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~2"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
<p>3D input scalar field (nxp, nyp, nzp).</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-ddy"></span> <h3>public subroutine <a href='../proc/ddy.html'>ddy</a>(dst, src)
</h3></div>
<div class="card-body">
<p>Computes the first-order derivative in the Y-direction.</p>
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~3"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
<p>3D output derivative field (nxp, nyp, nzp).</p>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~3"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
<p>3D input scalar field (nxp, nyp, nzp).</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-ddz"></span> <h3>public subroutine <a href='../proc/ddz.html'>ddz</a>(dst, src)
</h3></div>
<div class="card-body">
<p>Computes the first-order derivative in the Z-direction.</p>
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~4"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
<p>3D output derivative field (nxp, nyp, nzp).</p>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~4"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
<p>3D input scalar field (nxp, nyp, nzp).</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-d2dx1d"></span> <h3>public subroutine <a href='../proc/d2dx1d.html'>d2dx1d</a>(dst, src)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~5"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~5"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-d2dx"></span> <h3>public subroutine <a href='../proc/d2dx.html'>d2dx</a>(dst, src)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~6"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~6"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-d2dy"></span> <h3>public subroutine <a href='../proc/d2dy.html'>d2dy</a>(dst, src)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~7"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~7"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-d2dz"></span> <h3>public subroutine <a href='../proc/d2dz.html'>d2dz</a>(dst, src)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-dst~8"></span>
real(kind=real64),
</td>
<td>intent(out),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>dst</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-src~8"></span>
real(kind=real64),
</td>
<td>intent(in),</td>
<td></td> <td>
dimension(nxp,nyp,nzp)
</td>
<td>::</td>
<td><strong>src</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-tp"></span> <h3>public subroutine <a href='../proc/tp.html'>tp</a>(a, b, nx)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-a~9"></span>
real(kind=real64),
</td>
<td>intent(out)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>a</strong>(nb,nx)</td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-b~4"></span>
real(kind=real64),
</td>
<td>intent(in)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>b</strong>(nx,nb)</td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-nx~7"></span>
integer,
</td>
<td>intent(in)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>nx</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header codesum"><span class="anchor" id="proc-tp2"></span> <h3>public subroutine <a href='../proc/tp2.html'>tp2</a>(a, b, n1, n2)
</h3></div>
<div class="card-body">
<h4>Arguments</h4>
<table class="table table-striped varlist">
<thead>
<tr>
<th scope="col">Type</th>
<th scope="col">Intent</th><th scope="col">Optional</th> <th scope="col">Attributes</th>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col"></th>
</thead>
<tbody>
<tr>
<td>
<span class="anchor" id="variable-a~10"></span>
real(kind=real64),
</td>
<td>intent(out)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>a</strong>(n1,n2)</td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-b~5"></span>
real(kind=real64),
</td>
<td>intent(in)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>b</strong>(n2,n1)</td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-n1"></span>
integer,
</td>
<td>intent(in)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>n1</strong></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="anchor" id="variable-n2"></span>
integer,
</td>
<td>intent(in)</td>
<td></td> <td>
</td>
<td>::</td>
<td><strong>n2</strong></td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<br>
</div>
</div>
<hr>
</div> <!-- /container -->
<footer>
<div class="container">
<div class="row justify-content-between">
<div class="col">
<p>
HPC DNS Post-Processing Fortran Core
was developed by Google DeepMind Team & Ignis<br> &copy; 2026
</p>
</div>
<div class="col">
<p class="text-end">
Documentation generated by
<a href="https://github.com/Fortran-FOSS-Programmers/ford">FORD</a>
</p>
</div>
</div>
<br>
</div> <!-- /container -->
</footer>
</body>
</html>