FrontISTR  5.7.1
Large-scale structural analysis program with finit element method
hecmw_precond_DIAG.f90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
2 ! Copyright (c) 2019 FrontISTR Commons
3 ! This software is released under the MIT License, see LICENSE.txt
4 !-------------------------------------------------------------------------------
5 
7  use hecmw_util
14  implicit none
15 
16  private
17  public :: hecmw_precond_diag_setup
18  public :: hecmw_precond_diag_clear
19  public :: hecmw_precond_diag_apply
20 
21 contains
22 
23  subroutine hecmw_precond_diag_setup(hecMAT)
24  implicit none
25  type (hecmwst_matrix), intent(inout) :: hecmat
26 
27  select case(hecmat%NDOF)
28  case(3)
29  call hecmw_precond_diag_33_setup(hecmat)
30  case(4)
31  call hecmw_precond_diag_44_setup(hecmat)
32  case(6)
33  call hecmw_precond_diag_66_setup(hecmat)
34  case(1)
35  call hecmw_precond_diag_11_setup(hecmat)
36  case(2)
37  call hecmw_precond_diag_22_setup(hecmat)
38  case default
39  call hecmw_precond_diag_nn_setup(hecmat)
40  end select
41  end subroutine hecmw_precond_diag_setup
42 
43  subroutine hecmw_precond_diag_clear(NDOF)
44  implicit none
45  integer(kind=kint), intent(in) :: ndof
46 
47  select case(ndof)
48  case(3)
50  case(4)
52  case(6)
54  case(1)
56  case(2)
58  case default
60  end select
61  end subroutine hecmw_precond_diag_clear
62 
63  subroutine hecmw_precond_diag_apply(ZP, NDOF)
64  implicit none
65  real(kind=kreal), intent(inout) :: zp(:)
66  integer(kind=kint), intent(in) :: ndof
67 
68  select case(ndof)
69  case(3)
71  case(4)
73  case(6)
75  case(1)
77  case(2)
79  case default
80  call hecmw_precond_diag_nn_apply(zp,ndof)
81  end select
82  end subroutine hecmw_precond_diag_apply
83 
84 end module hecmw_precond_diag
subroutine, public hecmw_precond_diag_11_setup(hecMAT)
subroutine, public hecmw_precond_diag_11_apply(WW)
subroutine, public hecmw_precond_diag_11_clear()
subroutine, public hecmw_precond_diag_22_clear()
subroutine, public hecmw_precond_diag_22_setup(hecMAT)
subroutine, public hecmw_precond_diag_22_apply(WW)
subroutine, public hecmw_precond_diag_33_apply(WW)
subroutine, public hecmw_precond_diag_33_clear()
subroutine, public hecmw_precond_diag_33_setup(hecMAT)
subroutine, public hecmw_precond_diag_44_apply(WW)
subroutine, public hecmw_precond_diag_44_setup(hecMAT)
subroutine, public hecmw_precond_diag_44_clear()
subroutine, public hecmw_precond_diag_66_clear()
subroutine, public hecmw_precond_diag_66_setup(hecMAT)
subroutine, public hecmw_precond_diag_66_apply(WW)
subroutine, public hecmw_precond_diag_nn_setup(hecMAT)
subroutine, public hecmw_precond_diag_nn_clear()
subroutine, public hecmw_precond_diag_nn_apply(WW, NDOF)
subroutine, public hecmw_precond_diag_setup(hecMAT)
subroutine, public hecmw_precond_diag_clear(NDOF)
subroutine, public hecmw_precond_diag_apply(ZP, NDOF)
I/O and Utility.
Definition: hecmw_util_f.F90:7
integer(kind=4), parameter kreal