28 SUBROUTINE m_flow(IFLOW, IFLOW_L, NODLOCAL, P, MEMFLOW)
32#include "implicit_f.inc"
43 INTEGER IFLOW(*), IFLOW_L(*), NODLOCAL(*), P
44 INTEGER (KIND=8) :: MEMFLOW(*)
48 INTEGER I, IADI, IADJ, NINOUT, NNO, NEL, NNN, IADL, NNO_L, J,
49 . JJ, IADMATI, IADMATR, ITYP,
50 . NR, NC, NPROW, NPCOL, NNR_P, NNC_P, NNE_P, NBLOC,
74 iadj=iadi+niflow+nno+3*nel+ninout*niioflow
78 jj=iflow(iadi+niflow+j)
79 iflow_l(iadi+niflow+j)=nodlocal(jj)
80 IF (nodlocal(jj)/=0)
THEN
85 iflow_l(iadl+2*nno+nno_l)=j
89 iflow_l(iadi+16)=nno_l
93 iflow_l(iadj+j)=nodlocal(jj)
94 IF (nodlocal(jj)>0)
THEN
97 iflow_l(iadl+nno+nnn_l)=j
99 iflow_l(iadl+4*nno+nnn_l)=j
103 iflow_l(iadi+22)=nnn_l
110 IF (iflow(iadl+j)==nr)
THEN
119 IF (iflow(iadl+nno+j)==nc)
THEN
121 iflow_l(iadl+nno+j)=1
123 iflow_l(iadl+nno+j)=0
126 iadl=iadl+4*nno+2*nnn
128 IF (iflow(iadl+j)==nr)
THEN
136 IF (iflow(iadl+nel+j)==nc)
THEN
138 iflow_l(iadl+nel+j)=1
140 iflow_l(iadl+nel+j)=0
144 iflow_l(iadi+8)=nnr_p+nbloc
145 iflow_l(iadi+9)=nnr_p*nnc_p+nnr_p*nne_p
146 iflow_l(iadi+10)=iadmati
147 iflow_l(iadi+11)=iadmatr
148 iflow_l(iadi+20)=iadmatr+nnr_p*nnc_p
150 memflow(1)=memflow(1)+iflow_l(iadi+8)
151 memflow(2)=memflow(2)+iflow_l(iadi+9)
153 iadmati=iadmati+nnr_p+nbloc
154 iadmatr=iadmatr+nnr_p*nnc_p+nnr_p*nne_p
157 ELSEIF(ityp == 3)
THEN
159 IF(jform == 1) iadl=iadi+niflow+nno+3*nel
160 IF(jform == 2) iadl=iadi+niflow+nno+5*nel
166 jj=iflow(iadi+niflow+j)
167 iflow_l(iadi+niflow+j)=nodlocal(jj)
168 IF (nodlocal(jj)/=0)
THEN
170 iflow_l(iadl+nno_l)=j
173 iflow_l(iadi+16)=nno_l
178 IF(jform == 1) iadl=iadl+nno+nno+nel
179 IF(jform == 2) iadl=iadl+nno+nbgauge+nno+nel
182 IF (iflow(iadl+j)==nr)
THEN
192 IF (iflow(iadl+j)==nc)
THEN
201 WRITE(iout,1000) nprow, npcol, nbloc
202 WRITE(iout,
'(4X,A)')
'PROC NB OF ROWS NB OF COLUMNS'
204 WRITE(iout,
'(3I10)') p,nnr_p,nnc_p
206 iflow_l(iadi+8) = nnr_p+nbloc
207 iflow_l(iadi+9) = nnr_p*nnc_p
208 iflow_l(iadi+10)= iadmati
209 iflow_l(iadi+11)= iadmatr
210 iflow_l(iadi+20)= nnr_p
212 memflow(1)=memflow(1)+iflow_l(iadi+8)
213 memflow(2)=memflow(2)+iflow_l(iadi+9)
215 iadmati=iadmati+iflow_l(iadi+8)
216 iadmatr=iadmatr+iflow_l(iadi+9)
219 iadi=iadi+iflow(iadi+14)
222 1000
FORMAT(/4x,
'PARALLEL SOLVER PARAMETERS (SCALAPACK)'
223 . /4x,
'--------------------------------------'
224 . /4x,
'NUMBER OF ROW OF PROCESS GRID ',i10
225 . /4x,
'NUMBER OF COLUMNS OF PROCESS GRID ',i10
226 . /4x,
'2D-CYCLIC DECOMPOSITION BLOCK-SIZE ',i10)