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, , IADL, NNO_L, J,
49 . JJ, J1, J2, J3, PJ1, PJ2, PJ3, 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)