NAFPack_linalg.f90 Source File


This file depends on

sourcefile~~nafpack_linalg.f90~~EfferentGraph sourcefile~nafpack_linalg.f90 NAFPack_linalg.f90 sourcefile~nafpack_direct_methode.f90 NAFPack_Direct_methode.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_direct_methode.f90 sourcefile~nafpack_direct_types.f90 NAFPack_Direct_types.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_direct_types.f90 sourcefile~nafpack_iterative_methods.f90 NAFPack_Iterative_methods.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_iterative_methods.f90 sourcefile~nafpack_iterative_params.f90 NAFPack_Iterative_Params.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_iterative_params.f90 sourcefile~nafpack_iterative_types.f90 NAFPack_Iterative_types.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_iterative_types.f90 sourcefile~nafpack_preconditioners.f90 NAFPack_Preconditioners.f90 sourcefile~nafpack_linalg.f90->sourcefile~nafpack_preconditioners.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_direct_types.f90 sourcefile~nafpack_constant.f90 NAFPack_constant.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_constant.f90 sourcefile~nafpack_kinds.f90 NAFPack_kinds.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_matricielle.f90 NAFPack_matricielle.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_matrix_decomposition.f90 NAFPack_matrix_decomposition.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_matrix_decomposition.f90 sourcefile~nafpack_matrix_properties.f90 NAFPack_matrix_properties.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_matrix_properties.f90 sourcefile~nafpack_matrix_tools.f90 NAFPack_matrix_tools.f90 sourcefile~nafpack_direct_methode.f90->sourcefile~nafpack_matrix_tools.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_iterative_params.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_iterative_types.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_preconditioners.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_logger_mod.f90 NAFPack_Logger_mod.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_logger_mod.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_matrix_decomposition.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_matrix_properties.f90 sourcefile~nafpack_memory_monitor.f90 NAFPack_memory_monitor.f90 sourcefile~nafpack_iterative_methods.f90->sourcefile~nafpack_memory_monitor.f90 sourcefile~nafpack_iterative_params.f90->sourcefile~nafpack_iterative_types.f90 sourcefile~nafpack_iterative_params.f90->sourcefile~nafpack_preconditioners.f90 sourcefile~nafpack_iterative_params.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_iterative_params.f90->sourcefile~nafpack_matrix_decomposition.f90 sourcefile~nafpack_iterative_types.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_preconditioners.f90->sourcefile~nafpack_constant.f90 sourcefile~nafpack_preconditioners.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_preconditioners.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_preconditioners.f90->sourcefile~nafpack_matrix_decomposition.f90 sourcefile~nafpack_constant.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_logger_mod.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_ansi.f90 NAFPack_ANSI.f90 sourcefile~nafpack_logger_mod.f90->sourcefile~nafpack_ansi.f90 sourcefile~nafpack_terminal.f90 NAFPack_terminal.f90 sourcefile~nafpack_logger_mod.f90->sourcefile~nafpack_terminal.f90 sourcefile~nafpack_matricielle.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_matrix_decomposition.f90->sourcefile~nafpack_constant.f90 sourcefile~nafpack_matrix_decomposition.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_matrix_decomposition.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_matrix_properties.f90->sourcefile~nafpack_constant.f90 sourcefile~nafpack_matrix_properties.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_matrix_properties.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_eigen.f90 NAFPack_Eigen.f90 sourcefile~nafpack_matrix_properties.f90->sourcefile~nafpack_eigen.f90 sourcefile~nafpack_matrix_tools.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_matrix_tools.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_ansi.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_io_utils.f90 NAFPack_io_utils.f90 sourcefile~nafpack_ansi.f90->sourcefile~nafpack_io_utils.f90 sourcefile~nafpack_eigen.f90->sourcefile~nafpack_constant.f90 sourcefile~nafpack_eigen.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_eigen.f90->sourcefile~nafpack_matricielle.f90 sourcefile~nafpack_eigen.f90->sourcefile~nafpack_matrix_decomposition.f90 sourcefile~nafpack_terminal.f90->sourcefile~nafpack_kinds.f90 sourcefile~nafpack_terminal.f90->sourcefile~nafpack_ansi.f90 sourcefile~nafpack_io_utils.f90->sourcefile~nafpack_kinds.f90

Source Code

module NAFPack_linalg

    use NAFPack_Direct_types, only: MethodTypeDirect, METHOD_DIRECT_NONE, &
                                    METHOD_CHOLESKY, METHOD_LDL_Cholesky, &
                                    METHOD_FADDEEV_LEVERRIER, &
                                    METHOD_Gauss, METHOD_Gauss_JORDAN, &
                                    METHOD_LU, METHOD_LDU, &
                                    METHOD_QR, METHOD_TDMA, &
                                    DirectMethodRequirements, MethodQR, &
                                    QR_HOUSEHOLDER, QR_GIVENS, &
                                    QR_GRAM_SCHMIDT, QR_GRAM_SCHMIDT_Modified
    use NAFPack_Direct_method, only: DirectMethod

    use NAFPack_Iterative_types, only: MethodTypeIterative, METHOD_ITERATIVE_NONE, &
                                       METHOD_Jacobi, METHOD_JOR, &
                                       METHOD_GAUSS_SEIDEL, METHOD_SOR, METHOD_SSOR, &
                                       METHOD_SIP_ILU, METHOD_SIP_ICF, &
                                       METHOD_RICHARDSON, &
                                       METHOD_CONJUGATE_GRADIENT, METHOD_CONJUGATE_RESIDUAL, &
                                       METHOD_CGNE, METHOD_CGNR, &
                                       METHOD_GMRES, &
                                       IterativeMethodRequirements, &
                                       Norm_used, NORM_2, NORM_1, NORM_INF, &
                                       relaxation_factor_used, RELAXATION_FACTOR_NONE, &
                                       RELAXATION_FACTOR_OMEGA, RELAXATION_FACTOR_ALPHA
    use NAFPack_Iterative_Params, only: IterativeParams
    use NAFPack_Preconditioners, only: FILL_LEVEL_USED, FILL_LEVEL_NONE, &
                                       FILL_LEVEL_0, FILL_LEVEL_1, FILL_LEVEL_2, FILL_LEVEL_3, &
                                       FILL_LEVEL_N, &
                                       MethodPreconditioner, METHOD_PRECOND_NONE, &
                                       METHOD_PRECOND_JACOBI, METHOD_PRECOND_GS, &
                                       METHOD_PRECOND_SOR, METHOD_PRECOND_JOR, &
                                       METHOD_PRECOND_ILU, METHOD_PRECOND_ICF, &
                                       METHOD_PRECOND_SSOR, &
                                       Calculate_Gauss_Seidel_preconditioner, &
                                       Calculate_ICF_preconditioner, &
                                       Calculate_ILU_preconditioner, &
                                       Calculate_Jacobi_preconditioner, &
                                       Calculate_JOR_preconditioner, &
                                       Calculate_SOR_preconditioner, &
                                       Calculate_SSOR_preconditioner
    use NAFPack_Iterative_methods, only: IterativeMethod

    implicit none(type, external)

    private

    public :: linalg, DirectMethod, IterativeMethod

    public :: MethodTypeDirect, MethodQR
    public :: METHOD_DIRECT_NONE
    public :: METHOD_Gauss, METHOD_Gauss_JORDAN
    public :: METHOD_LU, METHOD_LDU
    public :: METHOD_CHOLESKY, METHOD_LDL_Cholesky, METHOD_QR
    public :: METHOD_TDMA, METHOD_FADDEEV_LEVERRIER
    public :: QR_HOUSEHOLDER, QR_GIVENS, QR_GRAM_SCHMIDT
    public :: QR_GRAM_SCHMIDT_Modified

    public :: IterativeParams
    public :: METHOD_ITERATIVE_NONE
    public :: METHOD_Jacobi, METHOD_JOR
    public :: METHOD_GAUSS_SEIDEL, METHOD_SOR, METHOD_SSOR
    public :: METHOD_SIP_ILU, METHOD_SIP_ICF
    public :: METHOD_RICHARDSON
    public :: METHOD_CONJUGATE_GRADIENT
    public :: METHOD_CONJUGATE_RESIDUAL
    public :: METHOD_CGNE, METHOD_CGNR
    public :: METHOD_GMRES

    public :: MethodPreconditioner
    public :: METHOD_PRECOND_NONE
    public :: METHOD_PRECOND_JACOBI, METHOD_PRECOND_JOR
    public :: METHOD_PRECOND_GS, METHOD_PRECOND_SOR, METHOD_PRECOND_SSOR
    public :: METHOD_PRECOND_ILU, METHOD_PRECOND_ICF

    public :: Norm_used
    public :: NORM_2, NORM_1, NORM_INF

    public :: FILL_LEVEL_USED
    public :: FILL_LEVEL_NONE
    public :: FILL_LEVEL_0, FILL_LEVEL_1, FILL_LEVEL_2, FILL_LEVEL_3
    public :: FILL_LEVEL_N

    type :: linalg

        type(DirectMethod) :: direct
        type(IterativeMethod) :: iterative

    end type linalg

contains

end module NAFPack_linalg