This module handles the generation of tridiagonal/pentadiagonal matrices,
LU decomposition calculations, and tridiagonal solver operations (such as stdlu, ptdlu, etc.)
for periodic and non-periodic boundary conditions. Since compact finite difference schemes
are implicit, these solvers are implemented internally to perform numerical differentiation
by solving the implicit relations efficiently.
Variables
| Type |
Visibility | Attributes |
|
Name |
| Initial | |
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lxf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lxs |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wxf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wxs |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lyf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lys |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wyf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wys |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lzf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
lzs |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wzf |
|
|
|
|
real(kind=real64),
|
public, |
DIMENSION(:), ALLOCATABLE
|
:: |
wzs |
|
|
|
|
integer,
|
public |
|
:: |
nxc |
|
|
|
|
integer,
|
public |
|
:: |
nyc |
|
|
|
|
integer,
|
public |
|
:: |
nzc |
|
|
|
|
real(kind=real64),
|
public, |
parameter
|
:: |
ezero |
= |
1.0e-14 |
|
Subroutines
Entry point for LU decomposition calculations.
Read more…
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
nx |
Grid size in x-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
ny |
Grid size in x-direction.
Grid size in y-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
nz |
Grid size in x-direction.
Grid size in y-direction.
Grid size in z-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
xp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
|
|
integer,
|
intent(in) |
|
|
:: |
yp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
Periodic flag for y-direction (0 = periodic, other = non-periodic).
|
|
integer,
|
intent(in) |
|
|
:: |
zp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
Periodic flag for y-direction (0 = periodic, other = non-periodic).
Periodic flag for z-direction (0 = periodic, other = non-periodic).
|
LU 분해를 위한 포트란 workspace 배열 메모리를 동적 할당하는 서브루틴입니다.
Read more…
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
nx |
Grid size in x-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
ny |
Grid size in x-direction.
Grid size in y-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
nz |
Grid size in x-direction.
Grid size in y-direction.
Grid size in z-direction.
|
|
integer,
|
intent(in) |
|
|
:: |
xp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
|
|
integer,
|
intent(in) |
|
|
:: |
yp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
Periodic flag for y-direction (0 = periodic, other = non-periodic).
|
|
integer,
|
intent(in) |
|
|
:: |
zp |
Periodic flag for x-direction (0 = periodic, other = non-periodic).
Periodic flag for y-direction (0 = periodic, other = non-periodic).
Periodic flag for z-direction (0 = periodic, other = non-periodic).
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
xp |
|
|
integer,
|
intent(in) |
|
|
:: |
yp |
|
|
integer,
|
intent(in) |
|
|
:: |
zp |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
nx |
|
|
integer,
|
intent(in) |
|
|
:: |
ny |
|
|
integer,
|
intent(in) |
|
|
:: |
nz |
|
|
integer,
|
intent(in) |
|
|
:: |
xp |
|
|
integer,
|
intent(in) |
|
|
:: |
yp |
|
|
integer,
|
intent(in) |
|
|
:: |
zp |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xx |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xx |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xx |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef1 |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef2 |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xx |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef1 |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(xx)
|
:: |
coef2 |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xyz |
|
|
integer
|
|
|
|
:: |
xx |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer
|
|
|
|
:: |
xyz |
|
|
integer
|
|
|
|
:: |
xx |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
a(n) |
|
|
integer
|
|
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(out) |
|
|
:: |
l(n) |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
a |
|
|
integer
|
|
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(out) |
|
|
:: |
l(n) |
|
|
real(kind=real64),
|
intent(out) |
|
|
:: |
w(n) |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
h |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(nd,n)
|
:: |
x |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(nd,n)
|
:: |
dx |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
h |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(nd,n)
|
:: |
x |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(nd,n)
|
:: |
dx |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
|
integer,
|
intent(in) |
|
|
:: |
dir |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
h |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(nd,n)
|
:: |
x |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(nd,n)
|
:: |
dx |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
|
integer,
|
intent(in) |
|
|
:: |
dir |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
real(kind=real64),
|
intent(inout), |
|
DIMENSION(nd,n)
|
:: |
r |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(n)
|
:: |
l |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(n)
|
:: |
w |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
h |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(nd,n)
|
:: |
x |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(nd,n)
|
:: |
dx |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
|
integer,
|
intent(in) |
|
|
:: |
dir |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
real(kind=real64),
|
intent(inout), |
|
DIMENSION(nd,n)
|
:: |
r |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(n)
|
:: |
l |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
Arguments
| Type |
Intent | Optional | Attributes |
|
Name |
|
|
integer,
|
intent(in) |
|
|
:: |
n |
|
|
real(kind=real64),
|
intent(in) |
|
|
:: |
h |
|
|
real(kind=real64),
|
intent(in), |
|
DIMENSION(nd,n)
|
:: |
x |
|
|
real(kind=real64),
|
intent(out), |
|
DIMENSION(nd,n)
|
:: |
dx |
|
|
integer,
|
intent(in) |
|
|
:: |
nd |
|
|
integer,
|
intent(in) |
|
|
:: |
dir |
|