FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
hecmw_jadm.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 !-------------------------------------------------------------------------------
7 
9  use hecmw_util
10  use m_hecmw_comm_f
14  implicit none
15 
16  private
17 
18  public :: hecmw_jad_init
19  public :: hecmw_jad_finalize
20  public :: hecmw_jad_is_initialized
21  public :: hecmw_jad_matvec
22 
23  !C---------------------- AU&AL
24  integer(kind=kint) :: INITIALIZED = 0
25 
26 contains
27 
28  subroutine hecmw_jad_init(hecMAT)
29  type(hecmwst_matrix) :: hecmat
30  select case(hecmat%NDOF)
31  case(3)
32  call hecmw_jad_init_33(hecmat)
33  case(4)
34  call hecmw_jad_init_44(hecmat)
35  case default
36  call hecmw_jad_init_nn(hecmat)
37  end select
38  initialized = 1
39  end subroutine hecmw_jad_init
40 
41  subroutine hecmw_jad_finalize(hecMAT)
42  type(hecmwst_matrix) :: hecmat
43 
44  select case(hecmat%NDOF)
45  case(3)
47  case(4)
49  case default
51  end select
52  initialized = 0
53  end subroutine hecmw_jad_finalize
54 
55  function hecmw_jad_is_initialized()
56  integer(kind=kint) :: hecmw_jad_is_initialized
57  hecmw_jad_is_initialized = initialized
58  end function hecmw_jad_is_initialized
59 
60  subroutine hecmw_jad_matvec(hecMESH, hecMAT, X, Y, COMMtime)
61 
62  type(hecmwst_local_mesh), intent(in) :: hecmesh
63  type(hecmwst_matrix), intent(in), target :: hecmat
64  real(kind=kreal), intent(in) :: x(:)
65  real(kind=kreal), intent(out) :: y(:)
66  real(kind=kreal), intent(inout) :: commtime
67  select case(hecmat%NDOF)
68  case(3)
69  call hecmw_jad_matvec_33(hecmesh, hecmat, x, y, commtime)
70  case(4)
71  call hecmw_jad_matvec_44(hecmesh, hecmat, x, y, commtime)
72  case default
73  call hecmw_jad_matvec_nn(hecmesh, hecmat, x, y, commtime)
74  end select
75  end subroutine hecmw_jad_matvec
76 
77 end module hecmw_jad_type
hecmw_jad_type_33::hecmw_jad_matvec_33
subroutine, public hecmw_jad_matvec_33(hecMESH, hecMAT, X, Y, COMMtime)
Definition: hecmw_jadm_33.f90:57
hecmw_jad_type::hecmw_jad_is_initialized
integer(kind=kint) function, public hecmw_jad_is_initialized()
Definition: hecmw_jadm.f90:56
hecmw_jad_type_44::hecmw_jad_init_44
subroutine, public hecmw_jad_init_44(hecMAT)
Definition: hecmw_jadm_44.f90:32
hecmw_jad_type
Jagged Diagonal Matrix storage for vector processors. Original code was provided by JAMSTEC.
Definition: hecmw_jadm.f90:8
hecmw_jad_type_nn::hecmw_jad_matvec_nn
subroutine, public hecmw_jad_matvec_nn(hecMESH, hecMAT, X, Y, COMMtime)
Definition: hecmw_jadm_nn.f90:57
hecmw_util
I/O and Utility.
Definition: hecmw_util_f.F90:7
hecmw_util::hecmwst_local_mesh
Definition: hecmw_util_f.F90:234
m_hecmw_comm_f
Definition: hecmw_comm_f.F90:6
hecmw_jad_type::hecmw_jad_init
subroutine, public hecmw_jad_init(hecMAT)
Definition: hecmw_jadm.f90:29
hecmw_jad_type_44
Jagged Diagonal Matrix storage for vector processors. Original code was provided by JAMSTEC.
Definition: hecmw_jadm_44.f90:8
hecmw_jad_type_44::hecmw_jad_matvec_44
subroutine, public hecmw_jad_matvec_44(hecMESH, hecMAT, X, Y, COMMtime)
Definition: hecmw_jadm_44.f90:57
hecmw_util::kreal
integer(kind=4), parameter kreal
Definition: hecmw_util_f.F90:16
hecmw_jad_type::hecmw_jad_finalize
subroutine, public hecmw_jad_finalize(hecMAT)
Definition: hecmw_jadm.f90:42
hecmw_jad_type_nn
Jagged Diagonal Matrix storage for vector processors. Original code was provided by JAMSTEC.
Definition: hecmw_jadm_nn.f90:8
hecmw_jad_type_nn::hecmw_jad_init_nn
subroutine, public hecmw_jad_init_nn(hecMAT)
Definition: hecmw_jadm_nn.f90:32
hecmw_jad_type_33::hecmw_jad_finalize_33
subroutine, public hecmw_jad_finalize_33()
Definition: hecmw_jadm_33.f90:43
hecmw_jad_type_33::hecmw_jad_init_33
subroutine, public hecmw_jad_init_33(hecMAT)
Definition: hecmw_jadm_33.f90:32
hecmw_jad_type_44::hecmw_jad_finalize_44
subroutine, public hecmw_jad_finalize_44()
Definition: hecmw_jadm_44.f90:43
hecmw_jad_type_33
Jagged Diagonal Matrix storage for vector processors. Original code was provided by JAMSTEC.
Definition: hecmw_jadm_33.f90:8
hecmw_jad_type_nn::hecmw_jad_finalize_nn
subroutine, public hecmw_jad_finalize_nn()
Definition: hecmw_jadm_nn.f90:43
hecmw_jad_type::hecmw_jad_matvec
subroutine, public hecmw_jad_matvec(hecMESH, hecMAT, X, Y, COMMtime)
Definition: hecmw_jadm.f90:61
hecmw_util::hecmwst_matrix
Definition: hecmw_util_f.F90:444