31
32
33
34
35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com01_c.inc"
43#include "com04_c.inc"
44#include "flowcom.inc"
45
46
47
48 INTEGER IFLOW(*)
49
50
51
52 INTEGER
54
55
56
57 INTEGER IADI, I, ITYP, NINOUT, NNO, NEL, NNN, NBLOC, IADL, PP,
58 . JJ, J, NPROW, NPCOL, K, P, JFORM
59 INTEGER PGRID(NSPMD,NSPMD)
60
61 iadi=0
62 DO i=1,nflow
63 ityp =iflow(iadi+2)
64 nno =iflow(iadi+5)
65 nel =iflow(iadi+6)
66 nbloc=iflow(iadi+12)
67 nprow=iflow(iadi+18)
68 npcol=iflow(iadi+19)
69 pp=0
70 DO j=1,nprow
71 DO k=1,npcol
72 pp=pp+1
73 pgrid(j,k)=pp
74 ENDDO
75 ENDDO
76
77 IF (ityp==1) THEN
78
79 ninout=iflow(iadi+4)
80 nnn=iflow(iadi+7)
81 iadl=iadi+niflow+nno+3*nel+ninout*niioflow+nnn+nel
82 pp=1
83 jj=0
84 DO j=1,nno
85 jj=jj+1
86 IF (jj==nbloc+1) THEN
87 pp=pp+1
88 IF (pp==nprow+1) pp=1
89 jj=1
90 ENDIF
91 iflow(iadl+j)=pp
92 ENDDO
93 pp=1
94 jj=0
95 DO j=1,nno
96 jj=jj+1
97 IF (jj==nbloc+1) THEN
98 pp=pp+1
99 IF (pp==npcol+1) pp=1
100 jj=1
101 ENDIF
102 iflow(iadl+nno+j)=pp
103 ENDDO
104
105 iadl=iadl+4*nno+2*nnn
106 pp=1
107 jj=0
108 DO j=1,nel
109 jj=jj+1
110 IF (jj==nbloc+1) THEN
111 pp=pp+1
112 IF (pp==nprow+1) pp=1
113 jj=1
114 ENDIF
115 iflow(iadl+j)=pp
116 ENDDO
117 pp=1
118 jj=0
119 DO j=1,nel
120 jj=jj+1
121 IF (jj==nbloc+1) THEN
122 pp=pp+1
123 IF (pp==npcol+1) pp=1
124 jj=1
125 ENDIF
126 iflow(iadl+nel+j)=pp
127 ENDDO
128
129 iadl=iadi+niflow+nno+3*nel+ninout*niioflow+nnn+nel+3*nno
130 DO j=1,nno
131 iflow(iadl+j)=0
132 ENDDO
133 DO p=1,nspmd
134 DO j=1,nno
135 jj=iflow(iadi+niflow+j)
136 IF (
nlocal(jj,p)==1) iflow(iadl+j)=iflow(iadl+j)+1
137 ENDDO
138 ENDDO
139
140 iadl=iadl+nno+nnn
141 DO j=1,nnn
142 iflow(iadl+j)=0
143 ENDDO
144 DO p=1,nspmd
145 DO j=1,nnn
146 jj=iflow(iadi+niflow+nno+3*nel+ninout*niioflow+j)
147 IF (
nlocal(jj,p)==1) iflow(iadl+j)=iflow(iadl+j)+1
148 ENDDO
149 ENDDO
150
151 ELSEIF(ityp == 3) THEN
152 jform=iflow(iadi+4)
153
154 iadl = 0
155 IF(jform==1) iadl=iadi+niflow+nno+3*nel+nno
156 IF(jform==2) iadl=iadi+niflow+nno+5*nel+nno+nbgauge
157 DO j=1,nno
158 iflow(iadl+j)=0
159 ENDDO
160 DO p=1,nspmd
161 DO j=1,nno
162 jj=iflow(iadi+niflow+j)
163 IF (
nlocal(jj,p)==1) iflow(iadl+j)=iflow(iadl+j)+1
164 ENDDO
165 ENDDO
166
167 iadl=iadl+nno+nel
168 pp=1
169 jj=0
170 DO j=1,nel
171 jj=jj+1
172 IF (jj==nbloc+1) THEN
173 pp=pp+1
174 IF (pp==nprow+1) pp=1
175 jj=1
176 ENDIF
177 iflow(iadl+j)=pp
178 ENDDO
179
180 iadl=iadl+nel
181 pp=1
182 jj=0
183 DO j=1,nel
184 jj=jj+1
185 IF (jj==nbloc+1) THEN
186 pp=pp+1
187 IF (pp==npcol+1) pp=1
188 jj=1
189 ENDIF
190 iflow(iadl+j)=pp
191 ENDDO
192 ENDIF
193 iadi=iadi+iflow(iadi+14)
194 ENDDO
195
196 RETURN