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