xref: /phasta/phSolver/AMG/ramg_data.f (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen      module ramg_data
2*59599516SKenneth E. Jansen
3*59599516SKenneth E. Jansen         parameter (MAXAMGLVL=15)
4*59599516SKenneth E. Jansen
5*59599516SKenneth E. Jansen         type r1d
6*59599516SKenneth E. Jansen           real*8, pointer :: p(:)
7*59599516SKenneth E. Jansen         end type
8*59599516SKenneth E. Jansenc
9*59599516SKenneth E. Jansen         type r2d
10*59599516SKenneth E. Jansen           real*8, pointer :: p(:,:)
11*59599516SKenneth E. Jansen         end type
12*59599516SKenneth E. Jansenc
13*59599516SKenneth E. Jansen         type r3d
14*59599516SKenneth E. Jansen           real*8, pointer :: p(:,:,:)
15*59599516SKenneth E. Jansen         end type
16*59599516SKenneth E. Jansenc
17*59599516SKenneth E. Jansen         type i1d
18*59599516SKenneth E. Jansen           integer, pointer :: p(:)
19*59599516SKenneth E. Jansen         end type
20*59599516SKenneth E. Jansenc
21*59599516SKenneth E. Jansen         type i2d
22*59599516SKenneth E. Jansen           integer, pointer :: p(:,:)
23*59599516SKenneth E. Jansen         end type
24*59599516SKenneth E. Jansenc
25*59599516SKenneth E. Jansen         type i3d
26*59599516SKenneth E. Jansen           integer, pointer :: p(:,:,:)
27*59599516SKenneth E. Jansen         end type
28*59599516SKenneth E. Jansenc
29*59599516SKenneth E. Jansen         type i2dd
30*59599516SKenneth E. Jansen           type(i1d),pointer :: pp(:)
31*59599516SKenneth E. Jansen         end type
32*59599516SKenneth E. Jansenc
33*59599516SKenneth E. Jansen         type r2dd
34*59599516SKenneth E. Jansen           type(r1d),pointer :: pp(:)
35*59599516SKenneth E. Jansen         end type
36*59599516SKenneth E. Jansenc
37*59599516SKenneth E. Jansen         type r12dd
38*59599516SKenneth E. Jansen            type(r2d),pointer :: pp(:)
39*59599516SKenneth E. Jansen         end type
40*59599516SKenneth E. Jansenc
41*59599516SKenneth E. Jansen         ! For communication pattern
42*59599516SKenneth E. Jansen         type(i2dd)            :: sub_map,sub_revmap,sub_rowpmap
43*59599516SKenneth E. Jansen         type(i2dd)       :: sub_colm,sub_colm2,sub_rowp,sub_rowp2
44*59599516SKenneth E. Jansen         type(r12dd)           :: sub_mtx,sub_mtx2
45*59599516SKenneth E. Jansen         type(i1d)             :: sub_nnz,sub_nnz2,sub_nshg
46*59599516SKenneth E. Jansen
47*59599516SKenneth E. Jansen
48*59599516SKenneth E. Jansen         ! For AMG
49*59599516SKenneth E. Jansen
50*59599516SKenneth E. Jansen         integer,allocatable,dimension(:)          :: levelbaseflag
51*59599516SKenneth E. Jansen         integer,allocatable,dimension(:)     :: reducecolm
52*59599516SKenneth E. Jansen         integer,allocatable,dimension(:)     :: reducerowp
53*59599516SKenneth E. Jansen         real(kind=8),allocatable,dimension(:) :: reducelhs
54*59599516SKenneth E. Jansen
55*59599516SKenneth E. Jansen         type(r2d),dimension(MAXAMGLVL)        :: amg_A_lhs
56*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: amg_A_rowp
57*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: amg_A_colm
58*59599516SKenneth E. Jansen         type(r1d),dimension(MAXAMGLVL)        :: amg_A_rhs
59*59599516SKenneth E. Jansen
60*59599516SKenneth E. Jansen         integer,dimension(MAXAMGLVL)          :: amg_nshg
61*59599516SKenneth E. Jansen         integer,dimension(MAXAMGLVL)          :: amg_nnz
62*59599516SKenneth E. Jansen
63*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: amg_paramap
64*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: amg_paraext
65*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: amg_ilwork
66*59599516SKenneth E. Jansen         integer,dimension(MAXAMGLVL)          :: amg_nlwork
67*59599516SKenneth E. Jansen         integer,dimension(:),allocatable      :: amg_cfmap
68*59599516SKenneth E. Jansen
69*59599516SKenneth E. Jansen         integer                               :: ramg_flag
70*59599516SKenneth E. Jansen         real(kind=8),dimension(10)            :: ramg_window
71*59599516SKenneth E. Jansen         integer                               :: ramg_winct
72*59599516SKenneth E. Jansen         integer                               :: ramg_redo
73*59599516SKenneth E. Jansen         real(kind=8),dimension(30)            :: ramg_time
74*59599516SKenneth E. Jansen
75*59599516SKenneth E. Jansen         integer                               :: ramg_verb
76*59599516SKenneth E. Jansen         integer                               :: ramg_setup_flag
77*59599516SKenneth E. Jansen         integer                               :: ramg_levelx
78*59599516SKenneth E. Jansen
79*59599516SKenneth E. Jansen         integer,allocatable,dimension(:)      :: ncorp_map
80*59599516SKenneth E. Jansen
81*59599516SKenneth E. Jansen         type(r2d)        :: ramg_flowDiag
82*59599516SKenneth E. Jansen         type(r1d),dimension(MAXAMGLVL)        :: amg_ppeDiag
83*59599516SKenneth E. Jansen
84*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: CF_map,CF_revmap
85*59599516SKenneth E. Jansen         type(r1d),dimension(MAXAMGLVL)        :: I_fc
86*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: I_fc_rowp
87*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: I_fc_colm
88*59599516SKenneth E. Jansen         type(r1d),dimension(MAXAMGLVL)        :: I_cf
89*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: I_cf_rowp
90*59599516SKenneth E. Jansen         type(i1d),dimension(MAXAMGLVL)        :: I_cf_colm
91*59599516SKenneth E. Jansen
92*59599516SKenneth E. Jansen         type(r2d),dimension(MAXAMGLVL)        :: sI_fc
93*59599516SKenneth E. Jansen         type(r2d),dimension(MAXAMGLVL)        :: sI_cf
94*59599516SKenneth E. Jansen
95*59599516SKenneth E. Jansen         ! GGB parameters
96*59599516SKenneth E. Jansen
97*59599516SKenneth E. Jansen         real(kind=8),dimension(:,:),allocatable :: ramg_ggb_ev
98*59599516SKenneth E. Jansen         real(kind=8),dimension(:,:),allocatable :: ramg_ggb_eA
99*59599516SKenneth E. Jansen         ! dense coarsest
100*59599516SKenneth E. Jansen         real(kind=8),dimension(:,:),allocatable :: cmtxA
101*59599516SKenneth E. Jansen         real(kind=8),dimension(:),allocatable :: cindx
102*59599516SKenneth E. Jansen
103*59599516SKenneth E. Jansen         ! MLS paramters
104*59599516SKenneth E. Jansen         real(kind=8),dimension(MAXAMGLVL,10)    :: mlsCf,mlsOm
105*59599516SKenneth E. Jansen            ! for system:
106*59599516SKenneth E. Jansen         real(kind=8),dimension(MAXAMGLVL,10)    :: smlsCf,smlsOm
107*59599516SKenneth E. Jansen
108*59599516SKenneth E. Jansen         ! reduced case
109*59599516SKenneth E. Jansen         integer,allocatable,dimension(:,:) :: reducemap,rmap1d
110*59599516SKenneth E. Jansen         integer :: rmapmax
111*59599516SKenneth E. Jansen
112*59599516SKenneth E. Jansen      end module
113*59599516SKenneth E. Jansen
114*59599516SKenneth E. Jansen
115