805 lines
No EOL
197 KiB
HTML
805 lines
No EOL
197 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>Compact.f90 – 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>Compact.f90
|
|
<small>Source File</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="statements"><i class="fa fa-list-ol"></i>
|
|
<a data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-html="true"
|
|
title="30.0% of total for source files.">474 statements</a>
|
|
</li>
|
|
|
|
<li class="list-inline-item" id="source-file">
|
|
<i class="fa fa-code"></i>
|
|
<a href="../src/Compact.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 active" aria-current="page">Compact.f90</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 hidden-xs hidden-sm visible-md visible-lg">
|
|
<div id="sidebar">
|
|
<h3>Contents</h3>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="card mb-4">
|
|
<a data-bs-toggle="collapse" href="#mods-0"
|
|
aria-expanded="false" aria-controls="mods-0">
|
|
<h4 class="card-header bg-primary text-white">Modules</h4>
|
|
</a>
|
|
<div id="mods-0" class="collapse">
|
|
<div class="list-group list-group-flush">
|
|
<a class="list-group-item" href="../module/compact.html">Compact</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="card card-primary">
|
|
<div class="card-header text-left"><h3 class="card-title">Source Code</h3></div>
|
|
<div class="list-group">
|
|
<a class="list-group-item" href="../sourcefile/compact.f90.html#src">Compact.f90</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
<div class="col-md-9" id='text'>
|
|
|
|
<br>
|
|
|
|
<section>
|
|
<h2><span class="anchor" id="src"></span>Source Code</h2>
|
|
<div class="hl codehilite"><pre><span></span><a id="ln-1" name="ln-1" href="#ln-1"></a><span class="w"> </span><span class="c">!> @author Ignis</span>
|
|
<a id="ln-2" name="ln-2" href="#ln-2"></a><span class="w"> </span><span class="c">!> @brief High-order compact finite difference scheme (generalized Padé scheme) solver with specific order of accuracy.</span>
|
|
<a id="ln-3" name="ln-3" href="#ln-3"></a><span class="w"> </span><span class="c">!!</span>
|
|
<a id="ln-4" name="ln-4" href="#ln-4"></a><span class="w"> </span><span class="c">!! This module handles the generation of tridiagonal/pentadiagonal matrices,</span>
|
|
<a id="ln-5" name="ln-5" href="#ln-5"></a><span class="w"> </span><span class="c">!! LU decomposition calculations, and tridiagonal solver operations (such as stdlu, ptdlu, etc.)</span>
|
|
<a id="ln-6" name="ln-6" href="#ln-6"></a><span class="w"> </span><span class="c">!! for periodic and non-periodic boundary conditions. Since compact finite difference schemes</span>
|
|
<a id="ln-7" name="ln-7" href="#ln-7"></a><span class="w"> </span><span class="c">!! are implicit, these solvers are implemented internally to perform numerical differentiation</span>
|
|
<a id="ln-8" name="ln-8" href="#ln-8"></a><span class="w"> </span><span class="c">!! by solving the implicit relations efficiently.</span>
|
|
<a id="ln-9" name="ln-9" href="#ln-9"></a><span class="w"> </span><span class="k">MODULE </span><span class="n">Compact</span>
|
|
<a id="ln-10" name="ln-10" href="#ln-10"></a><span class="w"> </span><span class="k">use</span><span class="p">,</span><span class="w"> </span><span class="k">intrinsic</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">iso_fortran_env</span><span class="p">,</span><span class="w"> </span><span class="k">only</span><span class="p">:</span><span class="w"> </span><span class="n">real64</span>
|
|
<a id="ln-11" name="ln-11" href="#ln-11"></a><span class="w"> </span><span class="k">IMPLICIT NONE</span>
|
|
<a id="ln-12" name="ln-12" href="#ln-12"></a>
|
|
<a id="ln-13" name="ln-13" href="#ln-13"></a><span class="k"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(:),</span><span class="w"> </span><span class="k">ALLOCATABLE</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">lxf</span><span class="p">,</span><span class="n">lxs</span><span class="p">,</span><span class="n">wxf</span><span class="p">,</span><span class="n">wxs</span><span class="p">,</span><span class="w"> </span><span class="p">&</span><span class="w"> </span><span class="c">!< x-방향 LU Decomposition 밴드 계수</span>
|
|
<a id="ln-14" name="ln-14" href="#ln-14"></a><span class="w"> </span><span class="n">lyf</span><span class="p">,</span><span class="n">lys</span><span class="p">,</span><span class="n">wyf</span><span class="p">,</span><span class="n">wys</span><span class="p">,</span><span class="w"> </span><span class="p">&</span><span class="w"> </span><span class="c">!< y-방향 LU Decomposition 밴드 계수</span>
|
|
<a id="ln-15" name="ln-15" href="#ln-15"></a><span class="w"> </span><span class="n">lzf</span><span class="p">,</span><span class="n">lzs</span><span class="p">,</span><span class="n">wzf</span><span class="p">,</span><span class="n">wzs</span><span class="w"> </span><span class="c">!< z-방향 LU Decomposition 밴드 계수</span>
|
|
<a id="ln-16" name="ln-16" href="#ln-16"></a>
|
|
<a id="ln-17" name="ln-17" href="#ln-17"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">nxc</span><span class="p">,</span><span class="n">nyc</span><span class="p">,</span><span class="n">nzc</span><span class="w"> </span><span class="c">!< 각 방향의 실제 격자 사이즈 수치 (x, y, z)</span>
|
|
<a id="ln-18" name="ln-18" href="#ln-18"></a>
|
|
<a id="ln-19" name="ln-19" href="#ln-19"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">PARAMETER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">ezero</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1.0e-14</span>
|
|
<a id="ln-20" name="ln-20" href="#ln-20"></a><span class="w"> </span>
|
|
<a id="ln-21" name="ln-21" href="#ln-21"></a><span class="w"> </span><span class="k">CONTAINS</span>
|
|
<a id="ln-22" name="ln-22" href="#ln-22"></a>
|
|
<a id="ln-23" name="ln-23" href="#ln-23"></a><span class="w"> </span><span class="c">!> Entry point for LU decomposition calculations.</span>
|
|
<a id="ln-24" name="ln-24" href="#ln-24"></a><span class="w"> </span><span class="c">!!</span>
|
|
<a id="ln-25" name="ln-25" href="#ln-25"></a><span class="w"> </span><span class="c">!! Prepares the workspace allocations and runs the decomposition calculation for all three directions.</span>
|
|
<a id="ln-26" name="ln-26" href="#ln-26"></a><span class="w"> </span><span class="c">!!</span>
|
|
<a id="ln-27" name="ln-27" href="#ln-27"></a><span class="w"> </span><span class="c">!! @param nx Grid size in x-direction.</span>
|
|
<a id="ln-28" name="ln-28" href="#ln-28"></a><span class="w"> </span><span class="c">!! @param ny Grid size in y-direction.</span>
|
|
<a id="ln-29" name="ln-29" href="#ln-29"></a><span class="w"> </span><span class="c">!! @param nz Grid size in z-direction.</span>
|
|
<a id="ln-30" name="ln-30" href="#ln-30"></a><span class="w"> </span><span class="c">!! @param xp Periodic flag for x-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-31" name="ln-31" href="#ln-31"></a><span class="w"> </span><span class="c">!! @param yp Periodic flag for y-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-32" name="ln-32" href="#ln-32"></a><span class="w"> </span><span class="c">!! @param zp Periodic flag for z-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-33" name="ln-33" href="#ln-33"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ludcmp</span><span class="p">(</span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span><span class="p">,</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-34" name="ln-34" href="#ln-34"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span>
|
|
<a id="ln-35" name="ln-35" href="#ln-35"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span>
|
|
<a id="ln-36" name="ln-36" href="#ln-36"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">ierr</span>
|
|
<a id="ln-37" name="ln-37" href="#ln-37"></a>
|
|
<a id="ln-38" name="ln-38" href="#ln-38"></a><span class="w"> </span><span class="n">nxc</span><span class="o">=</span><span class="n">nx</span>
|
|
<a id="ln-39" name="ln-39" href="#ln-39"></a><span class="w"> </span><span class="n">nyc</span><span class="o">=</span><span class="n">ny</span>
|
|
<a id="ln-40" name="ln-40" href="#ln-40"></a><span class="w"> </span><span class="n">nzc</span><span class="o">=</span><span class="n">nz</span>
|
|
<a id="ln-41" name="ln-41" href="#ln-41"></a>
|
|
<a id="ln-42" name="ln-42" href="#ln-42"></a><span class="w"> </span><span class="k">CALL </span><span class="n">ludcmp_allocate</span><span class="p">(</span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span><span class="p">,</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-43" name="ln-43" href="#ln-43"></a>
|
|
<a id="ln-44" name="ln-44" href="#ln-44"></a><span class="w"> </span><span class="k">CALL </span><span class="n">ludcmp_calculate</span><span class="p">(</span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span><span class="p">,</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-45" name="ln-45" href="#ln-45"></a>
|
|
<a id="ln-46" name="ln-46" href="#ln-46"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">ludcmp</span>
|
|
<a id="ln-47" name="ln-47" href="#ln-47"></a>
|
|
<a id="ln-48" name="ln-48" href="#ln-48"></a><span class="w"> </span><span class="c">!> LU 분해를 위한 포트란 workspace 배열 메모리를 동적 할당하는 서브루틴입니다.</span>
|
|
<a id="ln-49" name="ln-49" href="#ln-49"></a><span class="w"> </span><span class="c">!!</span>
|
|
<a id="ln-50" name="ln-50" href="#ln-50"></a><span class="w"> </span><span class="c">!! 경계 조건(xp, yp, zp = 0 주기적 경계 조건, 1 비주기적 경계 조건)에 따라 배열 크기와 </span>
|
|
<a id="ln-51" name="ln-51" href="#ln-51"></a><span class="w"> </span><span class="c">!! 할당 여부를 결정하며, 할당에 실패하면 에러를 출력하고 즉시 프로그램을 안전하게 종료(STOP)시킵니다.</span>
|
|
<a id="ln-52" name="ln-52" href="#ln-52"></a><span class="w"> </span><span class="c">!!</span>
|
|
<a id="ln-53" name="ln-53" href="#ln-53"></a><span class="w"> </span><span class="c">!! @param nx Grid size in x-direction.</span>
|
|
<a id="ln-54" name="ln-54" href="#ln-54"></a><span class="w"> </span><span class="c">!! @param ny Grid size in y-direction.</span>
|
|
<a id="ln-55" name="ln-55" href="#ln-55"></a><span class="w"> </span><span class="c">!! @param nz Grid size in z-direction.</span>
|
|
<a id="ln-56" name="ln-56" href="#ln-56"></a><span class="w"> </span><span class="c">!! @param xp Periodic flag for x-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-57" name="ln-57" href="#ln-57"></a><span class="w"> </span><span class="c">!! @param yp Periodic flag for y-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-58" name="ln-58" href="#ln-58"></a><span class="w"> </span><span class="c">!! @param zp Periodic flag for z-direction (0 = periodic, other = non-periodic).</span>
|
|
<a id="ln-59" name="ln-59" href="#ln-59"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ludcmp_allocate</span><span class="p">(</span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span><span class="p">,</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-60" name="ln-60" href="#ln-60"></a><span class="w"> </span><span class="k">include</span><span class="w"> </span><span class="s1">'mpif.h'</span>
|
|
<a id="ln-61" name="ln-61" href="#ln-61"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span>
|
|
<a id="ln-62" name="ln-62" href="#ln-62"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span>
|
|
<a id="ln-63" name="ln-63" href="#ln-63"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">ierr</span>
|
|
<a id="ln-64" name="ln-64" href="#ln-64"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">mpi_err_abort</span>
|
|
<a id="ln-65" name="ln-65" href="#ln-65"></a>
|
|
<a id="ln-66" name="ln-66" href="#ln-66"></a><span class="w"> </span><span class="n">nxc</span><span class="o">=</span><span class="n">nx</span>
|
|
<a id="ln-67" name="ln-67" href="#ln-67"></a><span class="w"> </span><span class="n">nyc</span><span class="o">=</span><span class="n">ny</span>
|
|
<a id="ln-68" name="ln-68" href="#ln-68"></a><span class="w"> </span><span class="n">nzc</span><span class="o">=</span><span class="n">nz</span>
|
|
<a id="ln-69" name="ln-69" href="#ln-69"></a>
|
|
<a id="ln-70" name="ln-70" href="#ln-70"></a><span class="c">! IF(nyc /= nzc) PRINT*,'ny should be equal nz'</span>
|
|
<a id="ln-71" name="ln-71" href="#ln-71"></a>
|
|
<a id="ln-72" name="ln-72" href="#ln-72"></a><span class="c">! xp, yp, zp = 0 : periodic</span>
|
|
<a id="ln-73" name="ln-73" href="#ln-73"></a><span class="w"> </span><span class="k">ALLOCATE</span><span class="p">(</span><span class="n">lxf</span><span class="p">(</span><span class="n">nxc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-74" name="ln-74" href="#ln-74"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-75" name="ln-75" href="#ln-75"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-76" name="ln-76" href="#ln-76"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-77" name="ln-77" href="#ln-77"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-78" name="ln-78" href="#ln-78"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">lxs</span><span class="p">(</span><span class="n">nxc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-79" name="ln-79" href="#ln-79"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-80" name="ln-80" href="#ln-80"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-81" name="ln-81" href="#ln-81"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-82" name="ln-82" href="#ln-82"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-83" name="ln-83" href="#ln-83"></a><span class="k"> IF</span><span class="p">(</span><span class="n">xp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-84" name="ln-84" href="#ln-84"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wxf</span><span class="p">(</span><span class="n">nxc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-85" name="ln-85" href="#ln-85"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-86" name="ln-86" href="#ln-86"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-87" name="ln-87" href="#ln-87"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-88" name="ln-88" href="#ln-88"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-89" name="ln-89" href="#ln-89"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wxs</span><span class="p">(</span><span class="n">nxc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-90" name="ln-90" href="#ln-90"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-91" name="ln-91" href="#ln-91"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-92" name="ln-92" href="#ln-92"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-93" name="ln-93" href="#ln-93"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-94" name="ln-94" href="#ln-94"></a><span class="k"> ENDIF</span>
|
|
<a id="ln-95" name="ln-95" href="#ln-95"></a>
|
|
<a id="ln-96" name="ln-96" href="#ln-96"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">lyf</span><span class="p">(</span><span class="n">nyc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-97" name="ln-97" href="#ln-97"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-98" name="ln-98" href="#ln-98"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-99" name="ln-99" href="#ln-99"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-100" name="ln-100" href="#ln-100"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-101" name="ln-101" href="#ln-101"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">lys</span><span class="p">(</span><span class="n">nyc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-102" name="ln-102" href="#ln-102"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-103" name="ln-103" href="#ln-103"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-104" name="ln-104" href="#ln-104"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-105" name="ln-105" href="#ln-105"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-106" name="ln-106" href="#ln-106"></a><span class="k"> IF</span><span class="p">(</span><span class="n">yp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-107" name="ln-107" href="#ln-107"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wyf</span><span class="p">(</span><span class="n">nyc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-108" name="ln-108" href="#ln-108"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-109" name="ln-109" href="#ln-109"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-110" name="ln-110" href="#ln-110"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-111" name="ln-111" href="#ln-111"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-112" name="ln-112" href="#ln-112"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wys</span><span class="p">(</span><span class="n">nyc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-113" name="ln-113" href="#ln-113"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-114" name="ln-114" href="#ln-114"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-115" name="ln-115" href="#ln-115"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-116" name="ln-116" href="#ln-116"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-117" name="ln-117" href="#ln-117"></a><span class="k"> ENDIF</span>
|
|
<a id="ln-118" name="ln-118" href="#ln-118"></a>
|
|
<a id="ln-119" name="ln-119" href="#ln-119"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">lzf</span><span class="p">(</span><span class="n">nzc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-120" name="ln-120" href="#ln-120"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-121" name="ln-121" href="#ln-121"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-122" name="ln-122" href="#ln-122"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-123" name="ln-123" href="#ln-123"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-124" name="ln-124" href="#ln-124"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">lzs</span><span class="p">(</span><span class="n">nzc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-125" name="ln-125" href="#ln-125"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-126" name="ln-126" href="#ln-126"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-127" name="ln-127" href="#ln-127"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-128" name="ln-128" href="#ln-128"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-129" name="ln-129" href="#ln-129"></a><span class="k"> IF</span><span class="p">(</span><span class="n">zp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-130" name="ln-130" href="#ln-130"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wzf</span><span class="p">(</span><span class="n">nzc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-131" name="ln-131" href="#ln-131"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-132" name="ln-132" href="#ln-132"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-133" name="ln-133" href="#ln-133"></a><span class="w"> </span><span class="k">CALL </span><span class="n">MPI_ABORT</span><span class="p">(</span><span class="n">MPI_COMM_WORLD</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="n">mpi_err_abort</span><span class="p">)</span>
|
|
<a id="ln-134" name="ln-134" href="#ln-134"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-135" name="ln-135" href="#ln-135"></a><span class="k"> ALLOCATE</span><span class="p">(</span><span class="n">wzs</span><span class="p">(</span><span class="n">nzc</span><span class="p">),</span><span class="nb">STAT</span><span class="o">=</span><span class="n">ierr</span><span class="p">)</span>
|
|
<a id="ln-136" name="ln-136" href="#ln-136"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">ierr</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-137" name="ln-137" href="#ln-137"></a><span class="k"> PRINT</span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s1">'work array for lud allocation failed'</span>
|
|
<a id="ln-138" name="ln-138" href="#ln-138"></a><span class="w"> </span><span class="k">STOP </span><span class="mi">1</span>
|
|
<a id="ln-139" name="ln-139" href="#ln-139"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-140" name="ln-140" href="#ln-140"></a><span class="k"> ENDIF</span>
|
|
<a id="ln-141" name="ln-141" href="#ln-141"></a>
|
|
<a id="ln-142" name="ln-142" href="#ln-142"></a><span class="k"> END SUBROUTINE </span><span class="n">ludcmp_allocate</span>
|
|
<a id="ln-143" name="ln-143" href="#ln-143"></a>
|
|
<a id="ln-144" name="ln-144" href="#ln-144"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ludcmp_deallocate</span><span class="p">(</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-145" name="ln-145" href="#ln-145"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span>
|
|
<a id="ln-146" name="ln-146" href="#ln-146"></a>
|
|
<a id="ln-147" name="ln-147" href="#ln-147"></a><span class="c">! IF(nyc /= nzc) PRINT*,'ny should be equal nz'</span>
|
|
<a id="ln-148" name="ln-148" href="#ln-148"></a>
|
|
<a id="ln-149" name="ln-149" href="#ln-149"></a><span class="c">! xp, yp, zp = 0 : periodic</span>
|
|
<a id="ln-150" name="ln-150" href="#ln-150"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">lxf</span><span class="p">)</span>
|
|
<a id="ln-151" name="ln-151" href="#ln-151"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">lxs</span><span class="p">)</span>
|
|
<a id="ln-152" name="ln-152" href="#ln-152"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">xp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-153" name="ln-153" href="#ln-153"></a><span class="k"> DEALLOCATE</span><span class="p">(</span><span class="n">wxf</span><span class="p">)</span>
|
|
<a id="ln-154" name="ln-154" href="#ln-154"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">wxs</span><span class="p">)</span>
|
|
<a id="ln-155" name="ln-155" href="#ln-155"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-156" name="ln-156" href="#ln-156"></a>
|
|
<a id="ln-157" name="ln-157" href="#ln-157"></a><span class="k"> DEALLOCATE</span><span class="p">(</span><span class="n">lyf</span><span class="p">)</span>
|
|
<a id="ln-158" name="ln-158" href="#ln-158"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">lys</span><span class="p">)</span>
|
|
<a id="ln-159" name="ln-159" href="#ln-159"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">yp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-160" name="ln-160" href="#ln-160"></a><span class="k"> DEALLOCATE</span><span class="p">(</span><span class="n">wyf</span><span class="p">)</span>
|
|
<a id="ln-161" name="ln-161" href="#ln-161"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">wys</span><span class="p">)</span>
|
|
<a id="ln-162" name="ln-162" href="#ln-162"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-163" name="ln-163" href="#ln-163"></a>
|
|
<a id="ln-164" name="ln-164" href="#ln-164"></a><span class="k"> DEALLOCATE</span><span class="p">(</span><span class="n">lzf</span><span class="p">)</span>
|
|
<a id="ln-165" name="ln-165" href="#ln-165"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">lzs</span><span class="p">)</span>
|
|
<a id="ln-166" name="ln-166" href="#ln-166"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">zp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-167" name="ln-167" href="#ln-167"></a><span class="k"> DEALLOCATE</span><span class="p">(</span><span class="n">wzf</span><span class="p">)</span>
|
|
<a id="ln-168" name="ln-168" href="#ln-168"></a><span class="w"> </span><span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">wzs</span><span class="p">)</span>
|
|
<a id="ln-169" name="ln-169" href="#ln-169"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-170" name="ln-170" href="#ln-170"></a>
|
|
<a id="ln-171" name="ln-171" href="#ln-171"></a><span class="k"> END SUBROUTINE </span><span class="n">ludcmp_deallocate</span>
|
|
<a id="ln-172" name="ln-172" href="#ln-172"></a>
|
|
<a id="ln-173" name="ln-173" href="#ln-173"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ludcmp_testalloc</span>
|
|
<a id="ln-174" name="ln-174" href="#ln-174"></a>
|
|
<a id="ln-175" name="ln-175" href="#ln-175"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lxf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lxf not allocated"</span>
|
|
<a id="ln-176" name="ln-176" href="#ln-176"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lxs</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lxs not allocated"</span>
|
|
<a id="ln-177" name="ln-177" href="#ln-177"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wxf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wxf not allocated"</span>
|
|
<a id="ln-178" name="ln-178" href="#ln-178"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wxs</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wxs not allocated"</span>
|
|
<a id="ln-179" name="ln-179" href="#ln-179"></a>
|
|
<a id="ln-180" name="ln-180" href="#ln-180"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lyf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lyf not allocated"</span>
|
|
<a id="ln-181" name="ln-181" href="#ln-181"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lys</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lys not allocated"</span>
|
|
<a id="ln-182" name="ln-182" href="#ln-182"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wyf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wyf not allocated"</span>
|
|
<a id="ln-183" name="ln-183" href="#ln-183"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wys</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wys not allocated"</span>
|
|
<a id="ln-184" name="ln-184" href="#ln-184"></a>
|
|
<a id="ln-185" name="ln-185" href="#ln-185"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lzf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lzf not allocated"</span>
|
|
<a id="ln-186" name="ln-186" href="#ln-186"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">lzs</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"lzs not allocated"</span>
|
|
<a id="ln-187" name="ln-187" href="#ln-187"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wzf</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wzf not allocated"</span>
|
|
<a id="ln-188" name="ln-188" href="#ln-188"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(.</span><span class="nb">not</span><span class="p">.</span><span class="w"> </span><span class="nb">ALLOCATED</span><span class="p">(</span><span class="n">wzs</span><span class="p">))</span><span class="w"> </span><span class="k">print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="s2">"wzs not allocated"</span>
|
|
<a id="ln-189" name="ln-189" href="#ln-189"></a>
|
|
<a id="ln-190" name="ln-190" href="#ln-190"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">ludcmp_testalloc</span>
|
|
<a id="ln-191" name="ln-191" href="#ln-191"></a>
|
|
<a id="ln-192" name="ln-192" href="#ln-192"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ludcmp_calculate</span><span class="p">(</span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span><span class="p">,</span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span><span class="p">)</span>
|
|
<a id="ln-193" name="ln-193" href="#ln-193"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">nx</span><span class="p">,</span><span class="n">ny</span><span class="p">,</span><span class="n">nz</span>
|
|
<a id="ln-194" name="ln-194" href="#ln-194"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xp</span><span class="p">,</span><span class="n">yp</span><span class="p">,</span><span class="n">zp</span>
|
|
<a id="ln-195" name="ln-195" href="#ln-195"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">ierr</span>
|
|
<a id="ln-196" name="ln-196" href="#ln-196"></a>
|
|
<a id="ln-197" name="ln-197" href="#ln-197"></a><span class="w"> </span><span class="n">nxc</span><span class="o">=</span><span class="n">nx</span>
|
|
<a id="ln-198" name="ln-198" href="#ln-198"></a><span class="w"> </span><span class="n">nyc</span><span class="o">=</span><span class="n">ny</span>
|
|
<a id="ln-199" name="ln-199" href="#ln-199"></a><span class="w"> </span><span class="n">nzc</span><span class="o">=</span><span class="n">nz</span>
|
|
<a id="ln-200" name="ln-200" href="#ln-200"></a>
|
|
<a id="ln-201" name="ln-201" href="#ln-201"></a><span class="w"> </span><span class="c">! CALL ludcmp_testalloc</span>
|
|
<a id="ln-202" name="ln-202" href="#ln-202"></a>
|
|
<a id="ln-203" name="ln-203" href="#ln-203"></a><span class="c">! IF(nyc /= nzc) PRINT*,'ny should be equal nz'</span>
|
|
<a id="ln-204" name="ln-204" href="#ln-204"></a>
|
|
<a id="ln-205" name="ln-205" href="#ln-205"></a><span class="c">! xp, yp, zp = 0 : periodic</span>
|
|
<a id="ln-206" name="ln-206" href="#ln-206"></a><span class="w"> </span><span class="k">IF</span><span class="p">(</span><span class="n">xp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-207" name="ln-207" href="#ln-207"></a><span class="k"> CALL </span><span class="n">p_lud</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">nxc</span><span class="p">)</span>
|
|
<a id="ln-208" name="ln-208" href="#ln-208"></a><span class="w"> </span><span class="k">ELSE</span>
|
|
<a id="ln-209" name="ln-209" href="#ln-209"></a><span class="k"> CALL </span><span class="n">nonp_lud</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">nxc</span><span class="p">)</span>
|
|
<a id="ln-210" name="ln-210" href="#ln-210"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-211" name="ln-211" href="#ln-211"></a>
|
|
<a id="ln-212" name="ln-212" href="#ln-212"></a><span class="k"> IF</span><span class="p">(</span><span class="n">yp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-213" name="ln-213" href="#ln-213"></a><span class="k"> CALL </span><span class="n">p_lud</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">nyc</span><span class="p">)</span>
|
|
<a id="ln-214" name="ln-214" href="#ln-214"></a><span class="w"> </span><span class="k">ELSE</span>
|
|
<a id="ln-215" name="ln-215" href="#ln-215"></a><span class="k"> call </span><span class="n">nonp_lud</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="n">nyc</span><span class="p">)</span>
|
|
<a id="ln-216" name="ln-216" href="#ln-216"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-217" name="ln-217" href="#ln-217"></a>
|
|
<a id="ln-218" name="ln-218" href="#ln-218"></a><span class="k"> IF</span><span class="p">(</span><span class="n">zp</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="k">THEN</span>
|
|
<a id="ln-219" name="ln-219" href="#ln-219"></a><span class="k"> CALL </span><span class="n">p_lud</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">nzc</span><span class="p">)</span>
|
|
<a id="ln-220" name="ln-220" href="#ln-220"></a><span class="w"> </span><span class="k">ELSE </span>
|
|
<a id="ln-221" name="ln-221" href="#ln-221"></a><span class="k"> call </span><span class="n">nonp_lud</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="n">nzc</span><span class="p">)</span>
|
|
<a id="ln-222" name="ln-222" href="#ln-222"></a><span class="w"> </span><span class="k">ENDIF</span>
|
|
<a id="ln-223" name="ln-223" href="#ln-223"></a>
|
|
<a id="ln-224" name="ln-224" href="#ln-224"></a><span class="k"> END SUBROUTINE </span><span class="n">ludcmp_calculate</span>
|
|
<a id="ln-225" name="ln-225" href="#ln-225"></a>
|
|
<a id="ln-226" name="ln-226" href="#ln-226"></a>
|
|
<a id="ln-227" name="ln-227" href="#ln-227"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">test_nonp_lud1</span><span class="p">(</span><span class="n">xx</span><span class="p">,</span><span class="w"> </span><span class="n">coef</span><span class="p">)</span>
|
|
<a id="ln-228" name="ln-228" href="#ln-228"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xx</span>
|
|
<a id="ln-229" name="ln-229" href="#ln-229"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">aa</span>
|
|
<a id="ln-230" name="ln-230" href="#ln-230"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">coef</span>
|
|
<a id="ln-231" name="ln-231" href="#ln-231"></a><span class="w"> </span><span class="n">aa</span><span class="o">=</span><span class="mf">3.</span>
|
|
<a id="ln-232" name="ln-232" href="#ln-232"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.5</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="mf">4.</span>
|
|
<a id="ln-233" name="ln-233" href="#ln-233"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">4.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="o">=</span><span class="mf">0.5</span>
|
|
<a id="ln-234" name="ln-234" href="#ln-234"></a>
|
|
<a id="ln-235" name="ln-235" href="#ln-235"></a><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">coef</span><span class="p">)</span>
|
|
<a id="ln-236" name="ln-236" href="#ln-236"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">test_nonp_lud1</span>
|
|
<a id="ln-237" name="ln-237" href="#ln-237"></a>
|
|
<a id="ln-238" name="ln-238" href="#ln-238"></a>
|
|
<a id="ln-239" name="ln-239" href="#ln-239"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">test_nonp_lud2</span><span class="p">(</span><span class="n">xx</span><span class="p">,</span><span class="w"> </span><span class="n">coef</span><span class="p">)</span>
|
|
<a id="ln-240" name="ln-240" href="#ln-240"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xx</span>
|
|
<a id="ln-241" name="ln-241" href="#ln-241"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">aa</span>
|
|
<a id="ln-242" name="ln-242" href="#ln-242"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">coef</span>
|
|
<a id="ln-243" name="ln-243" href="#ln-243"></a><span class="w"> </span><span class="n">aa</span><span class="o">=</span><span class="mf">5.5</span>
|
|
<a id="ln-244" name="ln-244" href="#ln-244"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">2.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span><span class="mf">0.</span>
|
|
<a id="ln-245" name="ln-245" href="#ln-245"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span><span class="mf">0.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="o">=</span><span class="mf">2.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-246" name="ln-246" href="#ln-246"></a>
|
|
<a id="ln-247" name="ln-247" href="#ln-247"></a><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">coef</span><span class="p">)</span>
|
|
<a id="ln-248" name="ln-248" href="#ln-248"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">test_nonp_lud2</span>
|
|
<a id="ln-249" name="ln-249" href="#ln-249"></a>
|
|
<a id="ln-250" name="ln-250" href="#ln-250"></a>
|
|
<a id="ln-251" name="ln-251" href="#ln-251"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">test_p_lud1</span><span class="p">(</span><span class="n">xx</span><span class="p">,</span><span class="w"> </span><span class="n">coef1</span><span class="p">,</span><span class="w"> </span><span class="n">coef2</span><span class="p">)</span>
|
|
<a id="ln-252" name="ln-252" href="#ln-252"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xx</span>
|
|
<a id="ln-253" name="ln-253" href="#ln-253"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span>
|
|
<a id="ln-254" name="ln-254" href="#ln-254"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">coef1</span><span class="p">,</span><span class="w"> </span><span class="n">coef2</span>
|
|
<a id="ln-255" name="ln-255" href="#ln-255"></a><span class="w"> </span><span class="n">a</span><span class="o">=</span><span class="mf">3.</span><span class="w"> </span><span class="c">! first derivative</span>
|
|
<a id="ln-256" name="ln-256" href="#ln-256"></a>
|
|
<a id="ln-257" name="ln-257" href="#ln-257"></a><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">coef1</span><span class="p">,</span><span class="n">coef2</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-258" name="ln-258" href="#ln-258"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">test_p_lud1</span>
|
|
<a id="ln-259" name="ln-259" href="#ln-259"></a>
|
|
<a id="ln-260" name="ln-260" href="#ln-260"></a>
|
|
<a id="ln-261" name="ln-261" href="#ln-261"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">test_p_lud2</span><span class="p">(</span><span class="n">xx</span><span class="p">,</span><span class="w"> </span><span class="n">coef1</span><span class="p">,</span><span class="w"> </span><span class="n">coef2</span><span class="p">)</span>
|
|
<a id="ln-262" name="ln-262" href="#ln-262"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xx</span>
|
|
<a id="ln-263" name="ln-263" href="#ln-263"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span>
|
|
<a id="ln-264" name="ln-264" href="#ln-264"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">coef1</span><span class="p">,</span><span class="w"> </span><span class="n">coef2</span>
|
|
<a id="ln-265" name="ln-265" href="#ln-265"></a><span class="w"> </span><span class="n">a</span><span class="o">=</span><span class="mi">1</span><span class="mf">1.</span><span class="o">/</span><span class="mf">2.</span><span class="w"> </span><span class="c">! second derivative</span>
|
|
<a id="ln-266" name="ln-266" href="#ln-266"></a>
|
|
<a id="ln-267" name="ln-267" href="#ln-267"></a><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">coef1</span><span class="p">,</span><span class="n">coef2</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-268" name="ln-268" href="#ln-268"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">test_p_lud2</span>
|
|
<a id="ln-269" name="ln-269" href="#ln-269"></a>
|
|
<a id="ln-270" name="ln-270" href="#ln-270"></a>
|
|
<a id="ln-271" name="ln-271" href="#ln-271"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">nonp_lud</span><span class="p">(</span><span class="n">xyz</span><span class="p">,</span><span class="n">xx</span><span class="p">)</span>
|
|
<a id="ln-272" name="ln-272" href="#ln-272"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xyz</span><span class="p">,</span><span class="n">xx</span>
|
|
<a id="ln-273" name="ln-273" href="#ln-273"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">aa</span>
|
|
<a id="ln-274" name="ln-274" href="#ln-274"></a><span class="w"> </span><span class="n">aa</span><span class="o">=</span><span class="mf">3.</span>
|
|
<a id="ln-275" name="ln-275" href="#ln-275"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.5</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="mf">4.</span>
|
|
<a id="ln-276" name="ln-276" href="#ln-276"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">4.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="o">=</span><span class="mf">0.5</span>
|
|
<a id="ln-277" name="ln-277" href="#ln-277"></a><span class="c">! first derivative</span>
|
|
<a id="ln-278" name="ln-278" href="#ln-278"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lxf</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-279" name="ln-279" href="#ln-279"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lyf</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-280" name="ln-280" href="#ln-280"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lzf</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-281" name="ln-281" href="#ln-281"></a><span class="w"> </span><span class="n">aa</span><span class="o">=</span><span class="mf">5.5</span>
|
|
<a id="ln-282" name="ln-282" href="#ln-282"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">2.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span><span class="mf">0.</span>
|
|
<a id="ln-283" name="ln-283" href="#ln-283"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">1</span><span class="mf">0.</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span><span class="o">=</span><span class="mf">2.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-284" name="ln-284" href="#ln-284"></a><span class="c">! second derivative</span>
|
|
<a id="ln-285" name="ln-285" href="#ln-285"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lxs</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-286" name="ln-286" href="#ln-286"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lys</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-287" name="ln-287" href="#ln-287"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lzs</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-288" name="ln-288" href="#ln-288"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">nonp_lud</span>
|
|
<a id="ln-289" name="ln-289" href="#ln-289"></a>
|
|
<a id="ln-290" name="ln-290" href="#ln-290"></a>
|
|
<a id="ln-291" name="ln-291" href="#ln-291"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">p_lud</span><span class="p">(</span><span class="n">xyz</span><span class="p">,</span><span class="n">xx</span><span class="p">)</span>
|
|
<a id="ln-292" name="ln-292" href="#ln-292"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">xyz</span><span class="p">,</span><span class="n">xx</span>
|
|
<a id="ln-293" name="ln-293" href="#ln-293"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span>
|
|
<a id="ln-294" name="ln-294" href="#ln-294"></a><span class="w"> </span><span class="n">a</span><span class="o">=</span><span class="mf">3.</span><span class="w"> </span><span class="c">! first derivative</span>
|
|
<a id="ln-295" name="ln-295" href="#ln-295"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lxf</span><span class="p">,</span><span class="n">wxf</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-296" name="ln-296" href="#ln-296"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lyf</span><span class="p">,</span><span class="n">wyf</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-297" name="ln-297" href="#ln-297"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lzf</span><span class="p">,</span><span class="n">wzf</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-298" name="ln-298" href="#ln-298"></a><span class="w"> </span><span class="n">a</span><span class="o">=</span><span class="mi">1</span><span class="mf">1.</span><span class="o">/</span><span class="mf">2.</span><span class="w"> </span><span class="c">! second derivative</span>
|
|
<a id="ln-299" name="ln-299" href="#ln-299"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lxs</span><span class="p">,</span><span class="n">wxs</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-300" name="ln-300" href="#ln-300"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lys</span><span class="p">,</span><span class="n">wys</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-301" name="ln-301" href="#ln-301"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">xyz</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">xx</span><span class="p">,</span><span class="n">lzs</span><span class="p">,</span><span class="n">wzs</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-302" name="ln-302" href="#ln-302"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">p_lud</span>
|
|
<a id="ln-303" name="ln-303" href="#ln-303"></a>
|
|
<a id="ln-304" name="ln-304" href="#ln-304"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">stdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">l</span><span class="p">)</span>
|
|
<a id="ln-305" name="ln-305" href="#ln-305"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span>
|
|
<a id="ln-306" name="ln-306" href="#ln-306"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
|
<a id="ln-307" name="ln-307" href="#ln-307"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">l</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
|
<a id="ln-308" name="ln-308" href="#ln-308"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">d</span>
|
|
<a id="ln-309" name="ln-309" href="#ln-309"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span>
|
|
<a id="ln-310" name="ln-310" href="#ln-310"></a><span class="w"> </span><span class="n">l</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">1.0d0</span><span class="o">/</span><span class="n">a</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-311" name="ln-311" href="#ln-311"></a><span class="w"> </span><span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">n</span>
|
|
<a id="ln-312" name="ln-312" href="#ln-312"></a><span class="w"> </span><span class="n">d</span><span class="o">=</span><span class="n">a</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">-</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-313" name="ln-313" href="#ln-313"></a><span class="w"> </span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="mf">1.0d0</span><span class="o">/</span><span class="n">d</span>
|
|
<a id="ln-314" name="ln-314" href="#ln-314"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-315" name="ln-315" href="#ln-315"></a><span class="k"> END SUBROUTINE </span><span class="n">stdlu</span>
|
|
<a id="ln-316" name="ln-316" href="#ln-316"></a>
|
|
<a id="ln-317" name="ln-317" href="#ln-317"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ptdlu</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">w</span><span class="p">)</span>
|
|
<a id="ln-318" name="ln-318" href="#ln-318"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span>
|
|
<a id="ln-319" name="ln-319" href="#ln-319"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">a</span>
|
|
<a id="ln-320" name="ln-320" href="#ln-320"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">l</span><span class="p">(</span><span class="n">n</span><span class="p">),</span><span class="n">w</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
|
<a id="ln-321" name="ln-321" href="#ln-321"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span>
|
|
<a id="ln-322" name="ln-322" href="#ln-322"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">n</span><span class="p">),</span><span class="n">d</span>
|
|
<a id="ln-323" name="ln-323" href="#ln-323"></a>
|
|
<a id="ln-324" name="ln-324" href="#ln-324"></a><span class="w"> </span><span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-325" name="ln-325" href="#ln-325"></a><span class="w"> </span><span class="n">aa</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">a</span>
|
|
<a id="ln-326" name="ln-326" href="#ln-326"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-327" name="ln-327" href="#ln-327"></a><span class="k"> </span><span class="n">i</span><span class="o">=</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-328" name="ln-328" href="#ln-328"></a><span class="w"> </span><span class="k">call </span><span class="n">stdlu</span><span class="p">(</span><span class="n">aa</span><span class="p">,</span><span class="n">i</span><span class="p">,</span><span class="n">l</span><span class="p">)</span>
|
|
<a id="ln-329" name="ln-329" href="#ln-329"></a><span class="w"> </span><span class="n">w</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">1.0</span>
|
|
<a id="ln-330" name="ln-330" href="#ln-330"></a><span class="w"> </span><span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span>
|
|
<a id="ln-331" name="ln-331" href="#ln-331"></a><span class="w"> </span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">=-</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-332" name="ln-332" href="#ln-332"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-333" name="ln-333" href="#ln-333"></a><span class="k"> </span><span class="n">w</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">1.0</span><span class="o">-</span><span class="n">l</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">w</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
|
<a id="ln-334" name="ln-334" href="#ln-334"></a><span class="w"> </span><span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-335" name="ln-335" href="#ln-335"></a><span class="w"> </span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
|
<a id="ln-336" name="ln-336" href="#ln-336"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-337" name="ln-337" href="#ln-337"></a><span class="k"> </span><span class="n">d</span><span class="o">=</span><span class="n">a</span>
|
|
<a id="ln-338" name="ln-338" href="#ln-338"></a><span class="w"> </span><span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-339" name="ln-339" href="#ln-339"></a><span class="w"> </span><span class="n">d</span><span class="o">=</span><span class="n">d</span><span class="o">-</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">/</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
|
<a id="ln-340" name="ln-340" href="#ln-340"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-341" name="ln-341" href="#ln-341"></a><span class="k"> </span><span class="n">l</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="mf">1.</span><span class="o">/</span><span class="n">d</span>
|
|
<a id="ln-342" name="ln-342" href="#ln-342"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">ptdlu</span>
|
|
<a id="ln-343" name="ln-343" href="#ln-343"></a>
|
|
<a id="ln-344" name="ln-344" href="#ln-344"></a>
|
|
<a id="ln-345" name="ln-345" href="#ln-345"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">rhs1np</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span>
|
|
<a id="ln-346" name="ln-346" href="#ln-346"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-347" name="ln-347" href="#ln-347"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h</span>
|
|
<a id="ln-348" name="ln-348" href="#ln-348"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
|
|
<a id="ln-349" name="ln-349" href="#ln-349"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">dx</span>
|
|
<a id="ln-350" name="ln-350" href="#ln-350"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-351" name="ln-351" href="#ln-351"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r1</span><span class="p">,</span><span class="n">r2</span><span class="p">,</span><span class="n">r3</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">h1</span><span class="p">,</span><span class="n">t1</span><span class="p">,</span><span class="n">t2</span><span class="p">,</span><span class="n">t3</span><span class="p">,</span><span class="n">t4</span>
|
|
<a id="ln-352" name="ln-352" href="#ln-352"></a>
|
|
<a id="ln-353" name="ln-353" href="#ln-353"></a><span class="w"> </span><span class="n">h1</span><span class="o">=</span><span class="mf">1.d0</span><span class="o">/</span><span class="n">h</span>
|
|
<a id="ln-354" name="ln-354" href="#ln-354"></a>
|
|
<a id="ln-355" name="ln-355" href="#ln-355"></a><span class="w"> </span><span class="n">r1</span><span class="o">=</span><span class="mf">7.d0</span><span class="o">/</span><span class="mf">3.d0</span>
|
|
<a id="ln-356" name="ln-356" href="#ln-356"></a><span class="w"> </span><span class="n">r2</span><span class="o">=</span><span class="mf">1.d0</span><span class="o">/</span><span class="mi">1</span><span class="mf">2.d0</span>
|
|
<a id="ln-357" name="ln-357" href="#ln-357"></a><span class="w"> </span><span class="n">r3</span><span class="o">=</span><span class="mf">3.</span>
|
|
<a id="ln-358" name="ln-358" href="#ln-358"></a><span class="w"> </span><span class="n">a</span><span class="o">=-</span><span class="mf">1.25</span>
|
|
<a id="ln-359" name="ln-359" href="#ln-359"></a><span class="w"> </span><span class="n">b</span><span class="o">=</span><span class="mf">1.</span>
|
|
<a id="ln-360" name="ln-360" href="#ln-360"></a><span class="w"> </span><span class="n">c</span><span class="o">=</span><span class="mf">0.25</span>
|
|
<a id="ln-361" name="ln-361" href="#ln-361"></a>
|
|
<a id="ln-362" name="ln-362" href="#ln-362"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-363" name="ln-363" href="#ln-363"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
|
<a id="ln-364" name="ln-364" href="#ln-364"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">a</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">+</span><span class="n">b</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">c</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-365" name="ln-365" href="#ln-365"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">a</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">b</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">c</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span>
|
|
<a id="ln-366" name="ln-366" href="#ln-366"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-367" name="ln-367" href="#ln-367"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-368" name="ln-368" href="#ln-368"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-369" name="ln-369" href="#ln-369"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span><span class="o">*</span><span class="n">r3</span>
|
|
<a id="ln-370" name="ln-370" href="#ln-370"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-371" name="ln-371" href="#ln-371"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-372" name="ln-372" href="#ln-372"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span><span class="o">*</span><span class="n">r3</span>
|
|
<a id="ln-373" name="ln-373" href="#ln-373"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-374" name="ln-374" href="#ln-374"></a>
|
|
<a id="ln-375" name="ln-375" href="#ln-375"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span>
|
|
<a id="ln-376" name="ln-376" href="#ln-376"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-377" name="ln-377" href="#ln-377"></a><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-378" name="ln-378" href="#ln-378"></a><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
|
<a id="ln-379" name="ln-379" href="#ln-379"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">h1</span><span class="o">*</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-380" name="ln-380" href="#ln-380"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-381" name="ln-381" href="#ln-381"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-382" name="ln-382" href="#ln-382"></a>
|
|
<a id="ln-383" name="ln-383" href="#ln-383"></a><span class="k"> END SUBROUTINE </span><span class="n">rhs1np</span>
|
|
<a id="ln-384" name="ln-384" href="#ln-384"></a>
|
|
<a id="ln-385" name="ln-385" href="#ln-385"></a>
|
|
<a id="ln-386" name="ln-386" href="#ln-386"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">dfnonp</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span><span class="p">)</span>
|
|
<a id="ln-387" name="ln-387" href="#ln-387"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span>
|
|
<a id="ln-388" name="ln-388" href="#ln-388"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h</span>
|
|
<a id="ln-389" name="ln-389" href="#ln-389"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
|
|
<a id="ln-390" name="ln-390" href="#ln-390"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">dx</span>
|
|
<a id="ln-391" name="ln-391" href="#ln-391"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-392" name="ln-392" href="#ln-392"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r1</span><span class="p">,</span><span class="n">r2</span><span class="p">,</span><span class="n">r3</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">h1</span><span class="p">,</span><span class="n">t1</span><span class="p">,</span><span class="n">t2</span><span class="p">,</span><span class="n">t3</span><span class="p">,</span><span class="n">t4</span>
|
|
<a id="ln-393" name="ln-393" href="#ln-393"></a>
|
|
<a id="ln-394" name="ln-394" href="#ln-394"></a><span class="w"> </span><span class="k">CALL </span><span class="n">rhs1np</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span>
|
|
<a id="ln-395" name="ln-395" href="#ln-395"></a>
|
|
<a id="ln-396" name="ln-396" href="#ln-396"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lxf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-397" name="ln-397" href="#ln-397"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lyf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-398" name="ln-398" href="#ln-398"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lzf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-399" name="ln-399" href="#ln-399"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">dfnonp</span>
|
|
<a id="ln-400" name="ln-400" href="#ln-400"></a>
|
|
<a id="ln-401" name="ln-401" href="#ln-401"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">dfp</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span><span class="p">)</span>
|
|
<a id="ln-402" name="ln-402" href="#ln-402"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span>
|
|
<a id="ln-403" name="ln-403" href="#ln-403"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h</span>
|
|
<a id="ln-404" name="ln-404" href="#ln-404"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
|
|
<a id="ln-405" name="ln-405" href="#ln-405"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">dx</span>
|
|
<a id="ln-406" name="ln-406" href="#ln-406"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-407" name="ln-407" href="#ln-407"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r1</span><span class="p">,</span><span class="n">r2</span><span class="p">,</span><span class="n">h1</span>
|
|
<a id="ln-408" name="ln-408" href="#ln-408"></a>
|
|
<a id="ln-409" name="ln-409" href="#ln-409"></a>
|
|
<a id="ln-410" name="ln-410" href="#ln-410"></a><span class="w"> </span><span class="c">! print *, "dfnonp received (nd,n)", nd, n</span>
|
|
<a id="ln-411" name="ln-411" href="#ln-411"></a>
|
|
<a id="ln-412" name="ln-412" href="#ln-412"></a><span class="w"> </span><span class="n">h1</span><span class="o">=</span><span class="mf">1.</span><span class="o">/</span><span class="n">h</span>
|
|
<a id="ln-413" name="ln-413" href="#ln-413"></a><span class="w"> </span><span class="n">r1</span><span class="o">=</span><span class="mf">7.</span><span class="o">/</span><span class="mf">3.</span>
|
|
<a id="ln-414" name="ln-414" href="#ln-414"></a><span class="w"> </span><span class="n">r2</span><span class="o">=</span><span class="mf">1.</span><span class="o">/</span><span class="mi">1</span><span class="mf">2.</span>
|
|
<a id="ln-415" name="ln-415" href="#ln-415"></a>
|
|
<a id="ln-416" name="ln-416" href="#ln-416"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-417" name="ln-417" href="#ln-417"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">3</span><span class="p">)))</span>
|
|
<a id="ln-418" name="ln-418" href="#ln-418"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)))</span>
|
|
<a id="ln-419" name="ln-419" href="#ln-419"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">))</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)))</span>
|
|
<a id="ln-420" name="ln-420" href="#ln-420"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)))</span>
|
|
<a id="ln-421" name="ln-421" href="#ln-421"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-422" name="ln-422" href="#ln-422"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-423" name="ln-423" href="#ln-423"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-424" name="ln-424" href="#ln-424"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-425" name="ln-425" href="#ln-425"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-426" name="ln-426" href="#ln-426"></a><span class="k"> </span>
|
|
<a id="ln-427" name="ln-427" href="#ln-427"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span>
|
|
<a id="ln-428" name="ln-428" href="#ln-428"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-429" name="ln-429" href="#ln-429"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">)))</span>
|
|
<a id="ln-430" name="ln-430" href="#ln-430"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">h1</span>
|
|
<a id="ln-431" name="ln-431" href="#ln-431"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-432" name="ln-432" href="#ln-432"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-433" name="ln-433" href="#ln-433"></a>
|
|
<a id="ln-434" name="ln-434" href="#ln-434"></a><span class="k"> IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lxf</span><span class="p">,</span><span class="n">wxf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-435" name="ln-435" href="#ln-435"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lyf</span><span class="p">,</span><span class="n">wyf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-436" name="ln-436" href="#ln-436"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lzf</span><span class="p">,</span><span class="n">wzf</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-437" name="ln-437" href="#ln-437"></a>
|
|
<a id="ln-438" name="ln-438" href="#ln-438"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">dfp</span>
|
|
<a id="ln-439" name="ln-439" href="#ln-439"></a>
|
|
<a id="ln-440" name="ln-440" href="#ln-440"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">w</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span>
|
|
<a id="ln-441" name="ln-441" href="#ln-441"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-442" name="ln-442" href="#ln-442"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">INOUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r</span>
|
|
<a id="ln-443" name="ln-443" href="#ln-443"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">l</span><span class="p">,</span><span class="n">w</span>
|
|
<a id="ln-444" name="ln-444" href="#ln-444"></a><span class="w"> </span><span class="kt">INTEGER </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-445" name="ln-445" href="#ln-445"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="w"> </span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="nb">sum</span>
|
|
<a id="ln-446" name="ln-446" href="#ln-446"></a><span class="nb"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-447" name="ln-447" href="#ln-447"></a><span class="w"> </span><span class="nb">sum</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">=</span><span class="n">w</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-448" name="ln-448" href="#ln-448"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">l</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-449" name="ln-449" href="#ln-449"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-450" name="ln-450" href="#ln-450"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-451" name="ln-451" href="#ln-451"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-452" name="ln-452" href="#ln-452"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">-</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-453" name="ln-453" href="#ln-453"></a><span class="w"> </span><span class="nb">sum</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">=</span><span class="nb">sum</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">+</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span>
|
|
<a id="ln-454" name="ln-454" href="#ln-454"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
|
<a id="ln-455" name="ln-455" href="#ln-455"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-456" name="ln-456" href="#ln-456"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-457" name="ln-457" href="#ln-457"></a><span class="k"> DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-458" name="ln-458" href="#ln-458"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="n">l</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">-</span><span class="nb">sum</span><span class="p">(</span><span class="n">j</span><span class="p">))</span>
|
|
<a id="ln-459" name="ln-459" href="#ln-459"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">w</span><span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span>
|
|
<a id="ln-460" name="ln-460" href="#ln-460"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-461" name="ln-461" href="#ln-461"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-462" name="ln-462" href="#ln-462"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-463" name="ln-463" href="#ln-463"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">-</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">w</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span>
|
|
<a id="ln-464" name="ln-464" href="#ln-464"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-465" name="ln-465" href="#ln-465"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-466" name="ln-466" href="#ln-466"></a><span class="k"> END SUBROUTINE </span><span class="n">ptdslv</span>
|
|
<a id="ln-467" name="ln-467" href="#ln-467"></a>
|
|
<a id="ln-468" name="ln-468" href="#ln-468"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">d2fp</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span><span class="p">)</span>
|
|
<a id="ln-469" name="ln-469" href="#ln-469"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span>
|
|
<a id="ln-470" name="ln-470" href="#ln-470"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h</span>
|
|
<a id="ln-471" name="ln-471" href="#ln-471"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
|
|
<a id="ln-472" name="ln-472" href="#ln-472"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">dx</span>
|
|
<a id="ln-473" name="ln-473" href="#ln-473"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-474" name="ln-474" href="#ln-474"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h2</span><span class="p">,</span><span class="n">r1</span><span class="p">,</span><span class="n">r2</span><span class="p">,</span><span class="n">t1</span><span class="p">,</span><span class="n">t2</span>
|
|
<a id="ln-475" name="ln-475" href="#ln-475"></a>
|
|
<a id="ln-476" name="ln-476" href="#ln-476"></a>
|
|
<a id="ln-477" name="ln-477" href="#ln-477"></a><span class="w"> </span><span class="n">h2</span><span class="o">=</span><span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">h</span><span class="p">)</span>
|
|
<a id="ln-478" name="ln-478" href="#ln-478"></a><span class="w"> </span><span class="n">r1</span><span class="o">=</span><span class="mf">6.</span>
|
|
<a id="ln-479" name="ln-479" href="#ln-479"></a><span class="w"> </span><span class="n">r2</span><span class="o">=</span><span class="mf">3.</span><span class="o">/</span><span class="mf">8.</span>
|
|
<a id="ln-480" name="ln-480" href="#ln-480"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-481" name="ln-481" href="#ln-481"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-482" name="ln-482" href="#ln-482"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">3</span><span class="p">))</span>
|
|
<a id="ln-483" name="ln-483" href="#ln-483"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-484" name="ln-484" href="#ln-484"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">3</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-485" name="ln-485" href="#ln-485"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-486" name="ln-486" href="#ln-486"></a><span class="w"> </span>
|
|
<a id="ln-487" name="ln-487" href="#ln-487"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-488" name="ln-488" href="#ln-488"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-489" name="ln-489" href="#ln-489"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-490" name="ln-490" href="#ln-490"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-491" name="ln-491" href="#ln-491"></a><span class="c">! dx(j,n)=(r1*(x(j,1)-2.*x(j,n)+x(j,n-1)) &</span>
|
|
<a id="ln-492" name="ln-492" href="#ln-492"></a><span class="c">! +r2*(x(j,2)-2.*x(j,n)+x(j,n-2)))</span>
|
|
<a id="ln-493" name="ln-493" href="#ln-493"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-494" name="ln-494" href="#ln-494"></a>
|
|
<a id="ln-495" name="ln-495" href="#ln-495"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">))</span>
|
|
<a id="ln-496" name="ln-496" href="#ln-496"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-497" name="ln-497" href="#ln-497"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-498" name="ln-498" href="#ln-498"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span><span class="w"> </span>
|
|
<a id="ln-499" name="ln-499" href="#ln-499"></a><span class="c">! dx(j,1)=(r1*(x(j,2)-2.*x(j,1)+x(j,n)) &</span>
|
|
<a id="ln-500" name="ln-500" href="#ln-500"></a><span class="c">! +r2*(x(j,3)-2.*x(j,1)+x(j,n-1)))</span>
|
|
<a id="ln-501" name="ln-501" href="#ln-501"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-502" name="ln-502" href="#ln-502"></a>
|
|
<a id="ln-503" name="ln-503" href="#ln-503"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-504" name="ln-504" href="#ln-504"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">4</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">))</span>
|
|
<a id="ln-505" name="ln-505" href="#ln-505"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-506" name="ln-506" href="#ln-506"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">4</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-507" name="ln-507" href="#ln-507"></a><span class="c">! dx(j,2)=(r1*(x(j,3)-2.*x(j,2)+x(j,1)) &</span>
|
|
<a id="ln-508" name="ln-508" href="#ln-508"></a><span class="c">! +r2*(x(j,4)-2.*x(j,2)+x(j,n)))</span>
|
|
<a id="ln-509" name="ln-509" href="#ln-509"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-510" name="ln-510" href="#ln-510"></a>
|
|
<a id="ln-511" name="ln-511" href="#ln-511"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-512" name="ln-512" href="#ln-512"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-513" name="ln-513" href="#ln-513"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-514" name="ln-514" href="#ln-514"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-515" name="ln-515" href="#ln-515"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-516" name="ln-516" href="#ln-516"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span>
|
|
<a id="ln-517" name="ln-517" href="#ln-517"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-518" name="ln-518" href="#ln-518"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-519" name="ln-519" href="#ln-519"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-520" name="ln-520" href="#ln-520"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-521" name="ln-521" href="#ln-521"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-522" name="ln-522" href="#ln-522"></a><span class="c">! dx(j,i)=(r1*(x(j,i+1)-2.*x(j,i)+x(j,i-1)) &</span>
|
|
<a id="ln-523" name="ln-523" href="#ln-523"></a><span class="c">! +r2*(x(j,i+2)-2.*x(j,i)+x(j,i-2)))</span>
|
|
<a id="ln-524" name="ln-524" href="#ln-524"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-525" name="ln-525" href="#ln-525"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-526" name="ln-526" href="#ln-526"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-527" name="ln-527" href="#ln-527"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-528" name="ln-528" href="#ln-528"></a><span class="k"> IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lxs</span><span class="p">,</span><span class="n">wxs</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-529" name="ln-529" href="#ln-529"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lys</span><span class="p">,</span><span class="n">wys</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-530" name="ln-530" href="#ln-530"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">ptdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lzs</span><span class="p">,</span><span class="n">wzs</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-531" name="ln-531" href="#ln-531"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">d2fp</span>
|
|
<a id="ln-532" name="ln-532" href="#ln-532"></a>
|
|
<a id="ln-533" name="ln-533" href="#ln-533"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">tdslv</span><span class="p">(</span><span class="n">r</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">l</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span>
|
|
<a id="ln-534" name="ln-534" href="#ln-534"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-535" name="ln-535" href="#ln-535"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">INOUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">r</span>
|
|
<a id="ln-536" name="ln-536" href="#ln-536"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">l</span>
|
|
<a id="ln-537" name="ln-537" href="#ln-537"></a><span class="w"> </span><span class="kt">INTEGER </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-538" name="ln-538" href="#ln-538"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="n">t1</span>
|
|
<a id="ln-539" name="ln-539" href="#ln-539"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-540" name="ln-540" href="#ln-540"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">l</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-541" name="ln-541" href="#ln-541"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-542" name="ln-542" href="#ln-542"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">n</span>
|
|
<a id="ln-543" name="ln-543" href="#ln-543"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-544" name="ln-544" href="#ln-544"></a><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">-</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-545" name="ln-545" href="#ln-545"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">t1</span>
|
|
<a id="ln-546" name="ln-546" href="#ln-546"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-547" name="ln-547" href="#ln-547"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-548" name="ln-548" href="#ln-548"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span>
|
|
<a id="ln-549" name="ln-549" href="#ln-549"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-550" name="ln-550" href="#ln-550"></a><span class="w"> </span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">-</span><span class="n">l</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">r</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
|
|
<a id="ln-551" name="ln-551" href="#ln-551"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-552" name="ln-552" href="#ln-552"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-553" name="ln-553" href="#ln-553"></a><span class="k"> END SUBROUTINE </span><span class="n">tdslv</span>
|
|
<a id="ln-554" name="ln-554" href="#ln-554"></a>
|
|
<a id="ln-555" name="ln-555" href="#ln-555"></a><span class="w"> </span><span class="k">SUBROUTINE </span><span class="n">d2fnonp</span><span class="p">(</span><span class="n">n</span><span class="p">,</span><span class="n">h</span><span class="p">,</span><span class="n">x</span><span class="p">,</span><span class="n">dx</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span><span class="p">)</span>
|
|
<a id="ln-556" name="ln-556" href="#ln-556"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">n</span><span class="p">,</span><span class="n">nd</span><span class="p">,</span><span class="n">dir</span>
|
|
<a id="ln-557" name="ln-557" href="#ln-557"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h</span>
|
|
<a id="ln-558" name="ln-558" href="#ln-558"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">x</span>
|
|
<a id="ln-559" name="ln-559" href="#ln-559"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">),</span><span class="k">INTENT</span><span class="p">(</span><span class="n">OUT</span><span class="p">),</span><span class="k">DIMENSION</span><span class="p">(</span><span class="n">nd</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">dx</span>
|
|
<a id="ln-560" name="ln-560" href="#ln-560"></a><span class="w"> </span><span class="kt">INTEGER</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="n">j</span>
|
|
<a id="ln-561" name="ln-561" href="#ln-561"></a><span class="w"> </span><span class="kt">real</span><span class="p">(</span><span class="n">real64</span><span class="p">)</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">h2</span><span class="p">,</span><span class="n">r1</span><span class="p">,</span><span class="n">r2</span><span class="p">,</span><span class="n">r3</span><span class="p">,</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">c</span><span class="p">,</span><span class="n">e</span><span class="p">,</span><span class="n">t1</span><span class="p">,</span><span class="n">t2</span>
|
|
<a id="ln-562" name="ln-562" href="#ln-562"></a>
|
|
<a id="ln-563" name="ln-563" href="#ln-563"></a>
|
|
<a id="ln-564" name="ln-564" href="#ln-564"></a><span class="w"> </span><span class="n">h2</span><span class="o">=</span><span class="mf">1.</span><span class="o">/</span><span class="p">(</span><span class="n">h</span><span class="o">*</span><span class="n">h</span><span class="p">)</span>
|
|
<a id="ln-565" name="ln-565" href="#ln-565"></a><span class="w"> </span><span class="n">r1</span><span class="o">=</span><span class="mf">6.</span>
|
|
<a id="ln-566" name="ln-566" href="#ln-566"></a><span class="w"> </span><span class="n">r2</span><span class="o">=</span><span class="mf">3.</span><span class="o">/</span><span class="mf">8.</span>
|
|
<a id="ln-567" name="ln-567" href="#ln-567"></a><span class="w"> </span><span class="n">r3</span><span class="o">=</span><span class="mi">1</span><span class="mf">2.</span>
|
|
<a id="ln-568" name="ln-568" href="#ln-568"></a><span class="w"> </span><span class="n">a</span><span class="o">=</span><span class="mi">1</span><span class="mf">3.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-569" name="ln-569" href="#ln-569"></a><span class="w"> </span><span class="n">b</span><span class="o">=-</span><span class="mi">2</span><span class="mf">7.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-570" name="ln-570" href="#ln-570"></a><span class="w"> </span><span class="n">c</span><span class="o">=</span><span class="mi">1</span><span class="mf">5.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-571" name="ln-571" href="#ln-571"></a><span class="w"> </span><span class="n">e</span><span class="o">=-</span><span class="mf">1.</span><span class="o">/</span><span class="mi">1</span><span class="mf">1.</span>
|
|
<a id="ln-572" name="ln-572" href="#ln-572"></a>
|
|
<a id="ln-573" name="ln-573" href="#ln-573"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-574" name="ln-574" href="#ln-574"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">a</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">b</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">c</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">+</span><span class="n">e</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
|
|
<a id="ln-575" name="ln-575" href="#ln-575"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-576" name="ln-576" href="#ln-576"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-577" name="ln-577" href="#ln-577"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">a</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">+</span><span class="n">b</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">c</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span><span class="o">+</span><span class="n">e</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">3</span><span class="p">))</span>
|
|
<a id="ln-578" name="ln-578" href="#ln-578"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-579" name="ln-579" href="#ln-579"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">3</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-580" name="ln-580" href="#ln-580"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">3</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-581" name="ln-581" href="#ln-581"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-582" name="ln-582" href="#ln-582"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-583" name="ln-583" href="#ln-583"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span><span class="o">*</span><span class="n">r3</span>
|
|
<a id="ln-584" name="ln-584" href="#ln-584"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span><span class="o">*</span><span class="n">r3</span>
|
|
<a id="ln-585" name="ln-585" href="#ln-585"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">n</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-586" name="ln-586" href="#ln-586"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-587" name="ln-587" href="#ln-587"></a><span class="k"> DO </span><span class="n">i</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span><span class="n">n</span><span class="o">-</span><span class="mi">2</span>
|
|
<a id="ln-588" name="ln-588" href="#ln-588"></a><span class="w"> </span><span class="k">DO </span><span class="n">j</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">nd</span>
|
|
<a id="ln-589" name="ln-589" href="#ln-589"></a><span class="w"> </span><span class="n">t1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
|
<a id="ln-590" name="ln-590" href="#ln-590"></a><span class="w"> </span><span class="n">t2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mf">2.</span><span class="o">*</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
|
|
<a id="ln-591" name="ln-591" href="#ln-591"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="n">t1</span><span class="o">=</span><span class="mf">0.</span>
|
|
<a id="ln-592" name="ln-592" href="#ln-592"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">+</span><span class="mi">2</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="nb">and</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">).</span><span class="n">eq</span><span class="p">.</span><span class="n">x</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span><span class="w"> </span><span class="n">t2</span><span class="o">=</span><span class="mf">0.</span><span class="w"> </span>
|
|
<a id="ln-593" name="ln-593" href="#ln-593"></a><span class="w"> </span>
|
|
<a id="ln-594" name="ln-594" href="#ln-594"></a><span class="c">! dx(j,i)=(r1*(x(j,i+1)-2.*x(j,i)+x(j,i-1)) &</span>
|
|
<a id="ln-595" name="ln-595" href="#ln-595"></a><span class="c">! +r2*(x(j,i+2)-2.*x(j,i)+x(j,i-2)))</span>
|
|
<a id="ln-596" name="ln-596" href="#ln-596"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="p">(</span><span class="n">r1</span><span class="o">*</span><span class="n">t1</span><span class="o">+</span><span class="n">r2</span><span class="o">*</span><span class="n">t2</span><span class="p">)</span>
|
|
<a id="ln-597" name="ln-597" href="#ln-597"></a><span class="w"> </span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">=</span><span class="n">dx</span><span class="p">(</span><span class="n">j</span><span class="p">,</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="n">h2</span>
|
|
<a id="ln-598" name="ln-598" href="#ln-598"></a><span class="w"> </span><span class="k">ENDDO</span>
|
|
<a id="ln-599" name="ln-599" href="#ln-599"></a><span class="k"> ENDDO</span>
|
|
<a id="ln-600" name="ln-600" href="#ln-600"></a>
|
|
<a id="ln-601" name="ln-601" href="#ln-601"></a><span class="k"> IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lxs</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! x-direction</span>
|
|
<a id="ln-602" name="ln-602" href="#ln-602"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lys</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! y-direction</span>
|
|
<a id="ln-603" name="ln-603" href="#ln-603"></a><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="p">(</span><span class="n">dir</span><span class="p">.</span><span class="n">eq</span><span class="p">.</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="k">CALL </span><span class="n">tdslv</span><span class="p">(</span><span class="n">dx</span><span class="p">,</span><span class="n">n</span><span class="p">,</span><span class="n">lzs</span><span class="p">,</span><span class="n">nd</span><span class="p">)</span><span class="w"> </span><span class="c">! z-direction</span>
|
|
<a id="ln-604" name="ln-604" href="#ln-604"></a>
|
|
<a id="ln-605" name="ln-605" href="#ln-605"></a><span class="w"> </span><span class="k">END SUBROUTINE </span><span class="n">d2fnonp</span>
|
|
<a id="ln-606" name="ln-606" href="#ln-606"></a>
|
|
<a id="ln-607" name="ln-607" href="#ln-607"></a><span class="w"> </span><span class="k">END MODULE </span><span class="n">Compact</span>
|
|
</pre></div>
|
|
|
|
</section>
|
|
</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> © 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> |