From f9c0eec4532370b8074f3563ae2f73ca6c0ae17a Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Sat, 15 Nov 2025 19:15:15 +0100 Subject: [PATCH] Fix overshooting tables. --- docs/amg4psblas_1.2-guide.pdf | Bin 1878008 -> 1878089 bytes docs/html/userhtmlse5.html | 1022 +++++++++++++++++---------------- docs/src/userinterface.tex | 29 +- 3 files changed, 530 insertions(+), 521 deletions(-) diff --git a/docs/amg4psblas_1.2-guide.pdf b/docs/amg4psblas_1.2-guide.pdf index 93d45fc7836f2b9b824ea20a2c17b1c5271fb293..678597b383b790ef7a17ab333132eb0c52b3d976 100644 GIT binary patch delta 10568 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 diff --git a/docs/html/userhtmlse5.html b/docs/html/userhtmlse5.html index a1680b8c..4e98cc70 100644 --- a/docs/html/userhtmlse5.html +++ b/docs/html/userhtmlse5.html @@ -765,7 +765,7 @@ class="small-caps">fault t

cments s






MIN_COARSE_SIZE_PER_PROCESS

Any number

> 0

200

Coarse size threshold per process. The -aggregation stops if the global number of -variables of the computed coarsest matrix -is lower than or equal to this threshold -multiplied by the number of processes -(see Note). +class="td11">

200

Coarse size threshold per process. The +aggregation stops if the global number +of variables of the computed coarsest +matrix is lower than or equal to this +threshold multiplied by the number of +processes (see Note).






Any number

> 0

-1

Coarse size threshold. The aggregation -stops if the global number of variables -of the computed coarsest matrix is lower -than or equal -to this threshold (see Note). If negative, -it is ignored in favour of the default for -MIN_COARSE_SIZE_PER_PROCESS. +class="td11">

-1

Coarse size threshold. The aggregation +stops if the global number of variables +of the computed coarsest matrix +is lower than or equal to this +threshold (see Note). If negative, it is +ignored in favour of the default for +MIN_COARSE_SIZE_PER_PROCESS.






Any number

> 1

1.5

Minimum coarsening -ratio. The aggregation stops if the ratio -between the global matrix dimensions at -two consecutive levels is lower than or -equal to this threshold (see Note). +class="td11">

1.5

Minimum coarsening ratio. The +aggregation stops if the ratio between +the global matrix dimensions at two +consecutive levels is lower than or +equal to this threshold (see Note).






Any integer

number > 1

20

Maximum number of levels. The -aggregation stops if the number of levels -reaches this value (see Note). +class="td11">

20

Maximum number of levels. The +aggregation stops if the number of +levels reaches this value (see Note).






PAR_AGGR_ALG

character(len=*)

’DEC’, +class="cmtt-10x-x-109">’DECOUPLED’, ’SYMDEC’, ’COUPLED’

’DEC’ ’DECOUPLED’

Parallel aggregation algorithm. -

the SYMDEC option applies decoupled -aggregation to the sparsity pattern of +

the SYMDEC option applies decoupled +aggregation to the sparsity pattern of A + AT . +class="cmmi-8">T .






SOC1, SOC2, MATCHBOXP

SOC1

Type of aggregation algorithm: currently, -for the -decoupled aggregation we implement two -measures of strength of connection, the -one by Vaněk, Mandel and Brezina [35], -and the one by Gratton et al [24]. The -coupled aggregation is based on a parallel -version of the half-approximate matching -implemented in the MatchBox-P software -package [9]. +class="td11">

SOC1

Type +of aggregation algorithm: currently, +for the decoupled aggregation we +implement two measures of strength +of connection, the one by Vaněk, +Mandel and Brezina [35], and the one +by Gratton et al [24]. The coupled +aggregation is based on a parallel +version of the half-approximate +matching implemented in the +MatchBox-P software package [9].






aggr_size 2

4

Maximum size of aggregates when the -coupled aggregation based on matching -is applied. For aggressive coarsening -with size of aggregate larger than 8 -we recommend the use of smoothed -prolongators. Used only with ’COUPLED’ -and ’MATCHBOXP’ +class="td11">

4

Maximum size of aggregates when +the coupled aggregation based on +matching is applied. For aggressive +coarsening with size of aggregate +larger than 8 we recommend the use +of smoothed prolongators. Used only +with ’COUPLED’ and ’MATCHBOXP’






character(len=*)

SMOOTHED, UNSMOOTHED

SMOOTHED

Prolongator used by the aggregation -algorithm: smoothed or unsmoothed (i.e., -tentative prolongator). +class="td11">

SMOOTHED

Prolongator used by the aggregation +algorithm: smoothed or unsmoothed +(i.e., tentative prolongator).






Note. The aggregation algorithm stops when at least one of the following criteria is met: the coarse size threshold,
+class="cmbx-10x-x-109">Note. The aggregation algorithm stops when at least one of the following criteria is met: the coarse size threshold,
the minimum coarsening ratio, or the maximum number of levels is reached.
+class="td11">
the minimum coarsening ratio, or the maximum number of levels is reached.
Therefore, the actual number of levels may be smaller than the specified maximum number of levels.
+class="td11">
Therefore, the actual number of levels may be smaller than the specified maximum number of levels.





+class="td11"> @@ -1172,16 +1173,17 @@ class="hline">




< class="td11">

COARSE_SUBSOLVE

character(len=*)

ILU -

ILUT -

MILU -

MUMPS -

SLU -

UMF -

INVT -

INVK -

AINV

See Note.

Solver for the diagonal blocks of the coarsest +

ILUT +

MILU +

MUMPS +

SLU +

SLUDIST +

UMF +

INVT +

INVK +

AINV

See Note.

Solver for the diagonal blocks of the coarsest matrix, in case the block Jacobi solver is chosen as coarsest-level solver: ILU(p), ILU(ILU otherwise.






what

what dtype

val

val

deault

cos






COARSE_SWEEPS

integer

Any +class="td11">

COARSE_SWEEPS

integer

Any integer -

number > 0

10

Number of sweeps when JACOBI, GS or BJAC is +class="td11">

10

Number of sweeps when JACOBI, GS or BJAC is chosen as coarsest-level solver.






COARSE_FILLIN

integer

Any +class="td11">

COARSE_FILLIN

integer

Any integer -

number 0

0

Fill-in level

0

Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses.






COARSE_ILUTHRS

real(kind_parameter)

Any real -

number

COARSE_ILUTHRS

real(kind_parameter)

Any real +number 0

0

Drop tolerance

0

Drop tolerance t in the ILU(p,t) factorization and first drop-tolerance for the approximate inverses. @@ -1330,7 +1332,7 @@ class="content">Parameters defining the solver at the coarsest level (continued) -


@@ -1338,7 +1340,7 @@ class="content">Parameters defining the solver at the coarsest level (continued)
-

+

@@ -1352,7 +1354,7 @@ id="TBL-8-4">






what

what dtype

val

val

deault

cots






BJAC_STOP

character(len=*)

FALSE -

TRUE

FALSE

Select whether to use a stopping criterion for +class="td11">

BJAC_STOP

character(len=*)

FALSE +

TRUE

FALSE

Select whether to use a stopping criterion for the Block-Jacobi method used as a coarse solver.






BJAC_TRACE

character(len=*)

FALSE -

TRUE

FALSE

Select whether to print a trace for the +class="td11">

BJAC_TRACE

character(len=*)

FALSE +

TRUE

FALSE

Select whether to print a trace for the calculated residual for the Block-Jacobi method used as a coarse solver.






BJAC_ITRACE

integer

Any integer -

BJAC_ITRACE

integer

Any integer +

> 0

-1

Number of iterations after which a trace is to +class="td11">

-1

Number of iterations after which a trace is to be printed.






BJAC_RESCHECK

integer

Any integer -

BJAC_RESCHECK

integer

Any integer +

> 0

-1

Number of iterations after which a residual is +class="td11">

-1

Number of iterations after which a residual is to be calculated.






BJAC_STOPTOL

real(kind_parameter)

Any real -

BJAC_STOPTOL

real(kind_parameter)

Any real +

< 1

0

Tolerance for the stopping criterion on the +class="td11">

0

Tolerance for the stopping criterion on the residual.






KRM_METHOD

character(len=*)

CG -

FCG -

CGS -

CGR -

BICG -

BICGSTAB -

BICGSTABL -

RGMRES

FCG

A string that defines the iterative method to +class="td11">

KRM_METHOD

character(len=*)

CG +

FCG +

CGS +

CGR +

BICG +

BICGSTAB +

BICGSTABL +

RGMRES

FCG

A string that defines the iterative method to be used when employing a Krylov method KRM as a coarse solver. CG the Conjugate @@ -1480,24 +1482,24 @@ information.






KRM_KPREC

character(len=*)

Table 

KRM_KPREC

character(len=*)

Table 1

BJAC

The one-level +class="td11">

BJAC

The one-level preconditioners from the Table 1 can be used for the coarse Krylov solver.






KRM_SUB_SOLVE

character(len=*)

Table 

KRM_SUB_SOLVE

character(len=*)

Table 5

ILU

Solver for the diagonal blocks of the coarsest +class="td11">

ILU

Solver for the diagonal blocks of the coarsest matrix preconditioner, in case the block Jacobi solver is chosen as KRM_KPREC: ILU(5 applies here.






KRM_GLOBAL

character(len=*)

TRUE, +class="td11">

KRM_GLOBAL

character(len=*)

TRUE, FALSE

FALSE

Choose between a global Krylov solver, all +class="td11">

FALSE

Choose between a global Krylov solver, all unknowns on a single node, or a distributed one. The default choice is the distributed solver.






KRM_EPS

real(kind_parameter)

Real

KRM_EPS

real(kind_parameter)

Real < 1

10

10-6

The stopping tolerance. +class="td11">

The stopping tolerance.






KRM_IRST

integer

Integer -

KRM_IRST

integer

Integer +

1

30

An integer specifying the restart parameter. +class="td11">

30

An integer specifying the restart parameter. This is employed for the BiCGSTABL or RGMRES @@ -1558,12 +1560,12 @@ methods, otherwise it is ignored.






KRM_ISTOPC

integer

Integers +class="td11">

KRM_ISTOPC

integer

Integers 1,2,3

2

If

2

If 1 then the method uses the normwise backward error in the infinity norm; if 2, the @@ -1576,24 +1578,24 @@ for the details.






KRM_ITMAX

integer

Integer -

KRM_ITMAX

integer

Integer +

1

40

The maximum number of iterations to +class="td11">

40

The maximum number of iterations to perform.






KRM_ITRACE

integer

Integer -

KRM_ITRACE

integer

Integer +

0

-1

If

-1

If > 0 print out an informational message about convergence every KRM_ITRACE iterations. If = 0 print a @@ -1601,13 +1603,13 @@ message in case of convergence failure.






KRM_FILLIN

integer

Integer -

KRM_FILLIN

integer

Integer +

0

0

Fill-in level

0

Fill-in level p of the ILU factorizations and first fill-in for the approximate inverses. Additional parameters defining the solver at the coarsest level. -


@@ -1637,7 +1639,7 @@ class="content">Additional parameters defining the solver at the coarsest level.
-

+






what

what

dtype

val

val

deault

cots






SMOOTHER_TYPE

character(len=*)

JACOBI -

GS -

BGS -

BJAC -

AS -

L1-JACOBI -

L1-BJAC -

L1-FBGS -

POLY

FBGS

SMOOTHER_TYPE

character(len=*)

JACOBI +

GS +

BGS +

BJAC +

AS +

L1-JACOBI +

L1-BJAC +

L1-FBGS +

POLY

FBGS

Type of smoother used in the multilevel preconditioner: point-Jacobi, hybrid @@ -1724,26 +1726,26 @@ class="cmr-10">] class="cmr-10">and Remark 3 (p. 21). -

It is ignored by one-level preconditioners.






SUB_SOLVE

character(len=*)

JACOBI +class="td11">

SUB_SOLVE

character(len=*)

JACOBI GS -

BGS -

ILU -

ILUT -

MILU -

MUMPS -

SLU -

UMF -

INVT -

INVK -

AINV

BGS +

ILU +

ILUT +

MILU +

MUMPS +

SLU +

UMF +

INVT +

INVK +

AINV

GS and BGS multilevel class="cmr-10">preconditioners, respectively -

ILU for block-Jacobi and Additive Schwarz class="cmr-10">one-level preconditioners

The local solver to be used with the smoother or one-level preconditioner (see @@ -1821,18 +1823,18 @@ class="cmr-10">Note for details on hybrid Gauss-Seidel.






SMOOTHER_SWEEPS

integer

SMOOTHER_SWEEPS

integer

Any integer -

number 0

1

Number of sweeps of the smoother or one-level preconditioner. In the multilevel @@ -1850,11 +1852,11 @@ class="cmr-10">respectively. Is ignored if the smoother is






POLY_DEGREE

integer

POLY_DEGREE

integer

Any integer -

number and 30

1

Degree of the polynomial accelerator, is equal to the number of matrix-vector @@ -1891,7 +1893,7 @@ preconditioner. -


@@ -1899,7 +1901,7 @@ preconditioner.
-

+






what

what

dtype

val

val

deault

cots






SUB_OVR

integer

SUB_OVR

integer

Any integer -

number 0

1

Number of overlap layers, for Additive Schwarz only.

SUB_RESTR

character(len=*)

HALO -

NONE

HALO

SUB_RESTR

character(len=*)

HALO +

NONE

HALO

Type of restriction operator, for Additive Schwarz only: for taking into account the overlap, NONE for neglecting it. -

Note that HALO must be chosen for the @@ -1985,12 +1987,12 @@ class="cmr-10">its RAS variant.






SUB_PROL

character(len=*)

SUM -

NONE

NONE

SUB_PROL

character(len=*)

SUM +

NONE

NONE

Type of prolongation operator, for Additive Schwarz only: SUM contributions from the overlap, for neglecting them. -

Note that SUM must be chosen for the for its RAS variant.






SUB_FILLIN

integer

SUB_FILLIN

integer

Any integer -

number 0

0

Fill-in level p of the incomplete LU @@ -2030,18 +2032,18 @@ class="cmr-10">factorizations.






SUB_ILUTHRS

real(kind_parameter)

SUB_ILUTHRS

real(kind_parameter)

Any real number 0

0

Drop tolerance t in the ILU(factorization.






MUMPS_LOC_GLOB

character(len=*)

LOCAL_SOLVER -

GLOBAL_SOLVER

GLOBAL_SOLVER

MUMPS_LOC_GLOB

character(len=*)

LOCAL_SOLVER +

GLOBAL_SOLVER

GLOBAL_SOLVER

Whether MUMPS should be used as a distributed solver, or as a serial solver acting @@ -2068,15 +2070,15 @@ class="cmr-10">process.






MUMPS_IPAR_ENTRY

integer

MUMPS_IPAR_ENTRY

integer

Any integer number

0

Set an entry in the MUMPS integer control array, as chosen via the idx argument.






MUMPS_RPAR_ENTRY

real

MUMPS_RPAR_ENTRY

real

Any real number

0

Set an entry in the MUMPS real control array, as chosen via the idx Parameters defining the smoother or the details of the one-level -


@@ -2124,7 +2126,7 @@ class="content">Parameters defining the smoother or the details of the one-level
-

+






what

what

dtype

val

val

deault

cots






POLY_VARIANT

character(len=*)

CHEB_4 -

CHEB_4_OPT -

CHEB_1_OPT

CHEB_4

POLY_VARIANT

character(len=*)

CHEB_4 +

CHEB_4_OPT +

CHEB_1_OPT

CHEB_4

Select the type of polynomial accelerator. @@ -2224,11 +2226,11 @@ class="cmr-10">-kind.






POLY_RHO_ESTIMATE

character(len=*)

POLY_RHO_EST_POWER

POLY_RHO_EST_POWER

POLY_RHO_ESTIMATE

character(len=*)

POLY_RHO_EST_POWER

POLY_RHO_EST_POWER

Algorithm for estimating the spectral @@ -2251,17 +2253,17 @@ class="cmr-10">two following options.






POLY_RHO_ESTIMATE_ITERATIONS

integer

POLY_RHO_ESTIMATE_ITERATIONS

integer

Any integer -

number 1

20

Number of iterations for the spectral radius @@ -2270,19 +2272,19 @@ class="cmr-10">estimate.






POLY_RHO_BA

real(kind_parameter)

POLY_RHO_BA

real(kind_parameter)

Any real -

number (0,1]

1

Sets an estimate of the spectral radius of @@ -2315,10 +2317,10 @@ class="cmr-12">Method hierarchy_build

-

-

call p%hierarchy_build(a,desc_a,info)
+

+

call p%hierarchy_build(a,desc_a,info)

-

This method builds the hierarchy of matrices and restriction/prolongation operators for the multilevel preconditioner p, according to the requirements made by the user class="cmr-12">through the methods init and set. -

Arguments

Arguments id="TBL-12-1">

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section Method smoothers_build

-

This method builds the smoothers and the coarsest-level solvers for the multilevel preconditioner p 5.3). -

Arguments

Arguments id="TBL-13-1"> @@ -2540,10 +2542,10 @@ class="cmr-12">5.5 Method build
-

-

call p%build(a,desc_a,info[,amold,vmold,imold])
+

+

call p%build(a,desc_a,info[,amold,vmold,imold])

-

This method builds the preconditioner p according to the requirements made by the and class="cmr-12">, whose nomenclature would however be somewhat unnatural when dealing with simple one-level preconditioners. -

Arguments

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -2505,26 +2507,26 @@ class="cmr-12">].

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

imold

class(psb_i_base_vect_type), intent(in), optional

imold

class(psb_i_base_vect_type), intent(in), optional.

The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.

Arguments id="TBL-14-1">

a

type(psb_

a

type(psb_xspmat_type), intent(in).

The sparse matrix structure containing the local part of the matrix to be preconditioned. Note that ].

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor of a. See the PSBLAS User’s Guide ].

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -2652,33 +2654,33 @@ class="cmr-12">].

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

imold

class(psb_i_base_vect_type), intent(in), optional

imold

class(psb_i_base_vect_type), intent(in), optional.

The desired dynamic type for internal integer vector components; this allows e.g. running on GPUs.

-

The method can be used to build multilevel preconditioners too. @@ -2689,10 +2691,10 @@ class="cmr-12">5.6 Method apply

-

This method computes y = and class="cmr-12">hence it is completely transparent to the user, who will almost never invoke it directly. -

Arguments

Arguments id="TBL-15-1"> +class="td11">

trans

x

x

type(kind_parameter), dimension(:), intent(in)—.

The local part of the vector x. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

y

y

type(kind_parameter), dimension(:), intent(out)—.

The local part of the vector y. Note that , single/double class="cmr-12">precision version of AMG4PSBLAS under use.

desc_a

type(psb_desc_type), intent(in)

desc_a

type(psb_desc_type), intent(in).

The communication descriptor associated to the matrix to be preconditioned.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

trans

character(len=1), optional, intent(in).

character(len=1), optional, intent(in).

If trans = N,n then 1).

work

work

type(kind_parameter), dimension(:), optional, target—.

Workspace. Its size should be at least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User’s Guide). Note that 5.7 Method free

-

This method deallocates the preconditioner data structure p. -

Arguments

Arguments id="TBL-16-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 5.8 Method descr

-

This method prints a description of the preconditioner p to the standard output or to a , or b class="cmr-12">, have been called. -

Arguments

Arguments id="TBL-17-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

iout

integer, intent(in), optional

iout

integer, intent(in), optional.

The id of the file where the preconditioner description will be printed; the default is the standard output.

root

integer, intent(in), optional

root

integer, intent(in), optional.

The id of the process where the preconditioner description will be printed; the default is psb_root_.

verbosity

integer, intent(in), optional

verbosity

integer, intent(in), optional.

The verbosity level of the description. Default value is 0. For values higher than 0, it prints out further information, e.g., for @@ -3007,31 +3009,31 @@ class="cmr-12">matrices on every process.

-

+

5.9 Auxiliary Methods

-

Various functionalities are implemented as additional methods of the preconditioner object. -

+

5.9.1 Method: dump
-

-

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])
+

+

call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])

-

Dump on file. -

Arguments

Arguments id="TBL-18-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

amold

class(psb_

amold

class(psb_x_base_sparse_mat), intent(in), optional.

The desired dynamic type for internal matrix components; this allows e.g. running on GPUs; it needs not be the same on all @@ -3074,19 +3076,19 @@ class="cmr-12">.

-

+

5.9.2 Method: clone
-

-

call p%clone(pout,info)
+

+

call p%clone(pout,info)

-

Create a (deep) copy of the preconditioner object. -

Arguments

Arguments id="TBL-19-1">

pout

type(amg_

pout

type(amg_xprec_type), intent(out).

The copy of the preconditioner data structure. Note that x must @@ -3113,13 +3115,13 @@ class="cmr-12">, single/double precision class="cmr-12">version of AMG4PSBLAS under use.

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section for details.

-

+

5.9.3 Method: sizeof
-

-

sz = p%sizeof([global])
+

+

sz = p%sizeof([global])

Method: sizeof id="TBL-20-1">

global

logical, optional

global

logical, optional.

Whether the global or local preconditioner memory occupation is desired. Default: .false.Return memory footprint in bytes. -

+

5.9.4 Method: allocate_wrk
-

-

call p%allocate_wrk(info[, vmold])
+

+

call p%allocate_wrk(info[, vmold])

-

Allocate internal work vectors. Each application of the preconditioner uses a number of work vectors which are allocated internally as necessary; therefore allocation and @@ -3200,7 +3202,7 @@ class="cmr-12">taken care of based on the dynamic type of the argument to the apply method. -

Arguments

Arguments id="TBL-21-1">

info

integer, intent(out)

info

integer, intent(out).

Error code. If no error, 0 is returned. See Section 7 for details.

vmold

class(psb_

vmold

class(psb_x_base_vect_type), intent(in), optional.

The desired dynamic type for internal vector components; this allows e.g. running on GPUs.

-

+

5.9.5 Method: deallocate_wrk
-

-

call p%deallocate_wrk(info)
+

+

call p%deallocate_wrk(info)
call p%free_wrk(info)

-

Deallocate internal work vectors. -

Arguments