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