FrontISTR  5.7.1
Large-scale structural analysis program with finit element method
hecmw_precond_SSOR.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_ssor_setup
18  public :: hecmw_precond_ssor_clear
19  public :: hecmw_precond_ssor_apply
20 
21 contains
22 
23  subroutine hecmw_precond_ssor_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_ssor_33_setup(hecmat)
30  case(4)
31  call hecmw_precond_ssor_44_setup(hecmat)
32  case(6)
33  call hecmw_precond_ssor_66_setup(hecmat)
34  case(1)
35  call hecmw_precond_ssor_11_setup(hecmat)
36  case(2)
37  call hecmw_precond_ssor_22_setup(hecmat)
38  case default
39  call hecmw_precond_ssor_nn_setup(hecmat)
40  end select
41  end subroutine hecmw_precond_ssor_setup
42 
43  subroutine hecmw_precond_ssor_clear(hecMAT)
44  implicit none
45  type (hecmwst_matrix), intent(inout) :: hecmat
46 
47  select case(hecmat%NDOF)
48  case(3)
49  call hecmw_precond_ssor_33_clear(hecmat)
50  case(4)
51  call hecmw_precond_ssor_44_clear(hecmat)
52  case(6)
53  call hecmw_precond_ssor_66_clear(hecmat)
54  case(1)
55  call hecmw_precond_ssor_11_clear(hecmat)
56  case(2)
57  call hecmw_precond_ssor_22_clear(hecmat)
58  case default
59  call hecmw_precond_ssor_nn_clear(hecmat)
60  end select
61  end subroutine hecmw_precond_ssor_clear
62 
63  subroutine hecmw_precond_ssor_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_ssor_nn_apply(zp,ndof)
81  end select
82  end subroutine hecmw_precond_ssor_apply
83 
84 end module hecmw_precond_ssor
subroutine, public hecmw_precond_ssor_11_setup(hecMAT)
subroutine, public hecmw_precond_ssor_11_clear(hecMAT)
subroutine, public hecmw_precond_ssor_11_apply(ZP)
subroutine, public hecmw_precond_ssor_22_apply(ZP)
subroutine, public hecmw_precond_ssor_22_setup(hecMAT)
subroutine, public hecmw_precond_ssor_22_clear(hecMAT)
subroutine, public hecmw_precond_ssor_33_apply(ZP)
subroutine, public hecmw_precond_ssor_33_setup(hecMAT)
subroutine, public hecmw_precond_ssor_33_clear(hecMAT)
subroutine, public hecmw_precond_ssor_44_clear(hecMAT)
subroutine, public hecmw_precond_ssor_44_apply(ZP)
subroutine, public hecmw_precond_ssor_44_setup(hecMAT)
subroutine, public hecmw_precond_ssor_66_setup(hecMAT)
subroutine, public hecmw_precond_ssor_66_clear(hecMAT)
subroutine, public hecmw_precond_ssor_66_apply(ZP)
subroutine, public hecmw_precond_ssor_nn_setup(hecMAT)
subroutine, public hecmw_precond_ssor_nn_clear(hecMAT)
subroutine, public hecmw_precond_ssor_nn_apply(ZP, NDOF)
subroutine, public hecmw_precond_ssor_apply(ZP, NDOF)
subroutine, public hecmw_precond_ssor_setup(hecMAT)
subroutine, public hecmw_precond_ssor_clear(hecMAT)
I/O and Utility.
Definition: hecmw_util_f.F90:7
integer(kind=4), parameter kreal