OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
flowdec.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "flowcom.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine flowdec (iflow)

Function/Subroutine Documentation

◆ flowdec()

subroutine flowdec ( integer, dimension(*) iflow)

Definition at line 30 of file flowdec.F.

31C-----------------------------------------------
32C M o d u l e s
33C-----------------------------------------------
34
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "com01_c.inc"
43#include "com04_c.inc"
44#include "flowcom.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER IFLOW(*)
49C-----------------------------------------------
50C E x t e r n a l F u n c t i o n s
51C-----------------------------------------------
52 INTEGER NLOCAL
53 EXTERNAL nlocal
54C-----------------------------------------------
55C L o c a l V a r i a b l e s
56C-----------------------------------------------
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)
60C
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
78C
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 !IBUFR
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 !IBUFC
103 ENDDO
104C
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 !IBUFELR
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 !IBUFELC
127 ENDDO
128C CNP nombre de processeurs possedant chaque noeud
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
139C CNPI nombre de processeurs possedant chaque noeud auxiliaire
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
150C
151 ELSEIF(ityp == 3) THEN
152 jform=iflow(iadi+4)
153C CNP nombre de processeurs possedant chaque noeud
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
166C IBUFELR ligne des elements dans la Process Grid
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 !IBUFELR
178 ENDDO
179C IBUFELC colonne des elements dans la Process Grid
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 !IBUFELC
191 ENDDO
192 ENDIF
193 iadi=iadi+iflow(iadi+14)
194 ENDDO
195C
196 RETURN
integer function nlocal(n, p)
Definition ddtools.F:349