OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
soltosph.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| soltosphf ../engine/source/elements/sph/soltosph.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| my_barrier ../engine/source/system/machine.F
31!|| startimeg ../engine/source/system/timer.F
32!|| stoptimeg ../engine/source/system/timer.F
33!||--- uses -----------------------------------------------------
34!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
35!|| message_mod ../engine/share/message_module/message_mod.F
36!|| soltosph_mod ../engine/share/modules/soltosph_mod.F
37!||====================================================================
38 SUBROUTINE soltosphf(
39 1 A ,SPBUF ,IXS ,KXSP ,IPARTSP ,
40 2 NOD2SP ,IRST ,NGROUNC ,IGROUNC ,IPARG ,
41 3 STIFN ,SOL2SPH,SPH2SOL ,ELBUF_TAB,ITASK ,
42 4 NODFT ,NODLT ,ISKY ,FSKYI ,IGEO ,
43 5 SOL2SPH_TYP)
44C-----------------------------------------------
45 USE elbufdef_mod
46 USE soltosph_mod
47 USE message_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52#include "comlock.inc"
53C-----------------------------------------------
54C C o m m o n B l o c k s
55C-----------------------------------------------
56#include "com01_c.inc"
57#include "com04_c.inc"
58#include "param_c.inc"
59#include "parit_c.inc"
60#include "sphcom.inc"
61#include "task_c.inc"
62#include "vect01_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 INTEGER IXS(NIXS,*), KXSP(NISP,*), IPARTSP(*), NOD2SP(*),
67 . IRST(3,*), NGROUNC, IGROUNC(*), IPARG(NPARG,*),
68 . SOL2SPH(2,*), SPH2SOL(*), ITASK, NODFT, NODLT, ISKY(*),
69 . IGEO(NPROPGI,*),SOL2SPH_TYP(*)
70 my_real
71 . a(3,*), spbuf(nspbuf,*), stifn(*), fskyi(lskyi,nfskyi)
72 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
73C-----------------------------------------------
74C L o c a l V a r i a b l e s
75C-----------------------------------------------
76 INTEGER I, J, IR, IS, IT, KP, NP, N, INOD, MG, NG, NEL,
77 . kft, n1, n2, n3, n4, n5, n6, n7, n8,
78 . lenr, ig , nelem, offset, nsphdir, iprtsph, iaw,
79 . my_iaw, ierror, nisk, niftsk, niltsk, niskyl, nsol
80C
81 my_real
82 . phi1,phi2,phi3,phi4,phi5,phi6,phi7,phi8,
83 . ksi, eta, zeta
84C-----
85 TYPE(g_bufel_) ,POINTER :: GBUF, GBUFSP
86 TYPE(l_bufel_) ,POINTER :: LBUF
87 TYPE(BUF_MAT_) ,POINTER :: MBUF
88C-----------------------------------------------
89 my_real
90 . a_gauss(9,9),a_gauss_tetra(9,9)
91 DATA a_gauss /
92 1 0. ,0. ,0. ,
93 1 0. ,0. ,0. ,
94 1 0. ,0. ,0. ,
95 2 -.5 ,0.5 ,0. ,
96 2 0. ,0. ,0. ,
97 2 0. ,0. ,0. ,
98 3 -.666666666666666,0. ,0.666666666666666,
99 3 0. ,0. ,0. ,
100 3 0. ,0. ,0. ,
101 4 -.75 ,-.25 ,0.25 ,
102 4 0.75 ,0. ,0. ,
103 4 0. ,0. ,0. ,
104 5 -.8 ,-.4 ,0. ,
105 5 0.4 ,0.8 ,0. ,
106 5 0. ,0. ,0. ,
107 6 -.833333333333333,-.5 ,-.166666666666666,
108 6 0.166666666666666,0.5 ,0.833333333333333,
109 6 0. ,0. ,0. ,
110 7 -.857142857142857,-.571428571428571,-.285714285714285,
111 7 0. ,0.285714285714285,0.571428571428571,
112 7 0.857142857142857,0. ,0. ,
113 8 -.875 ,-.625 ,-.375 ,
114 8 -.125 ,0.125 ,0.375,
115 8 0.625 ,0.875 ,0. ,
116 9 -.888888888888888,-.666666666666666,-.444444444444444,
117 9 -.222222222222222,0. ,0.222222222222222,
118 9 0.444444444444444,0.666666666666666,0.888888888888888/
119C-----------------------------------------------
120 DATA a_gauss_tetra /
121 1 0.250000000000000,0.000000000000000,0.000000000000000,
122 1 0.000000000000000,0.000000000000000,0.000000000000000,
123 1 0.000000000000000,0.000000000000000,0.000000000000000,
124 2 0.166666666666667,0.500000000000000,0.000000000000000,
125 2 0.000000000000000,0.000000000000000,0.000000000000000,
126 2 0.000000000000000,0.000000000000000,0.000000000000000,
127 3 0.125000000000000,0.375000000000000,0.625000000000000,
128 3 0.000000000000000,0.000000000000000,0.000000000000000,
129 3 0.000000000000000,0.000000000000000,0.000000000000000,
130 4 0.100000000000000,0.300000000000000,0.500000000000000,
131 4 0.700000000000000,0.000000000000000,0.000000000000000,
132 4 0.000000000000000,0.000000000000000,0.000000000000000,
133 5 0.083333333333333,0.250000000000000,0.416666666666667,
134 5 0.583333333333333,0.750000000000000,0.000000000000000,
135 5 0.000000000000000,0.000000000000000,0.000000000000000,
136 6 0.071428571428571,0.214285714285714,0.357142857142857,
137 6 0.500000000000000,0.642857142857143,0.785714285714286,
138 6 0.000000000000000,0.000000000000000,0.000000000000000,
139 7 0.062500000000000,0.187500000000000,0.312500000000000,
140 7 0.437500000000000,0.562500000000000,0.687500000000000,
141 7 0.812500000000000,0.000000000000000,0.000000000000000,
142 8 0.055555555555556,0.166666666666667,0.277777777777778,
143 8 0.388888888888889,0.500000000000000,0.611111111111111,
144 8 0.722222222222222,0.833333333333333,0.000000000000000,
145 9 0.050000000000000,0.150000000000000,0.250000000000000,
146 9 0.350000000000000,0.450000000000000,0.550000000000000,
147 9 0.650000000000000,0.750000000000000,0.850000000000000/
148C-----------------------------------------------
149C MAPPING OF CONTACT FORCES APPLYING TO SLEEPING PARTICLES
150C-----------------------------------------------
151 IF(iparit==0)THEN
152 IF(itask==0)THEN
153 ALLOCATE(awork(4,nthread*numnod),stat=ierror)
154 IF(ierror/=0) THEN
155 CALL ancmsg(msgid=19,anmode=aninfo,
156 . c1='(solids to sph)')
157 CALL ARRET(2)
158 ENDIF
159 END IF
160C
161 CALL MY_BARRIER
162C
163 DO IAW=ITASK*NUMNOD+1,(ITASK+1)*NUMNOD
164 AWORK(1,IAW)=ZERO
165 AWORK(2,IAW)=ZERO
166 AWORK(3,IAW)=ZERO
167 AWORK(4,IAW)=ZERO
168 END DO
169C
170 CALL MY_BARRIER
171C
172 MY_IAW=ITASK*NUMNOD
173!$OMP DO SCHEDULE(DYNAMIC,1)
174 DO IG = 1, NGROUNC
175 NG = IGROUNC(IG)
176 IF(IPARG(8,NG)==1)GOTO 350
177 IF (IDDW>0) CALL STARTIMEG(NG)
178 DO NELEM = 1,IPARG(2,NG),NVSIZ
179 OFFSET = NELEM - 1
180 NEL =IPARG(2,NG)
181 NFT =IPARG(3,NG) + OFFSET
182 IAD =IPARG(4,NG)
183 ITY =IPARG(5,NG)
184 IPRTSPH=IPARG(69,NG)
185 LFT=1
186 LLT=MIN(NVSIZ,NEL-NELEM+1)
187.AND. IF(ITY==1IPRTSPH/=0) THEN
188C-----------
189 GBUF => ELBUF_TAB(NG)%GBUF
190 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(1,1,1)
191 MBUF => ELBUF_TAB(NG)%BUFLY(1)%MAT(1,1,1)
192C-----
193C----TETRA---
194C-----
195 IF (IPARG(28,NG)==4) THEN
196C-----
197 DO I=LFT,LLT
198 N=NFT+I
199 IF(GBUF%OFF(I)/=ZERO) THEN
200C
201 N1=IXS(2,N)
202 N2=IXS(3,N)
203 N3=IXS(4,N)
204 N4=IXS(5,N)
205C
206 NSPHDIR=IGEO(37,IXS(10,N))
207C
208C-----------------------------------------------
209C SOL2SPH(1,N)+1<=I<=SOLSPH(2,N) <=> N==SPH2SOL(I)
210 DO KP=1,SOL2SPH(2,N)-SOL2SPH(1,N)
211 NP =SOL2SPH(1,N)+KP
212 IR=IRST(1,NP-FIRST_SPHSOL+1)
213 IS=IRST(2,NP-FIRST_SPHSOL+1)
214 IT=IRST(3,NP-FIRST_SPHSOL+1)
215 KSI = A_GAUSS_TETRA(IR,NSPHDIR)
216 ETA = A_GAUSS_TETRA(IS,NSPHDIR)
217 ZETA = A_GAUSS_TETRA(IT,NSPHDIR)
218C
219 PHI1=KSI
220 PHI2=ETA
221 PHI3=ZETA
222 PHI4=1-KSI-ETA-ZETA
223C
224 INOD=KXSP(3,NP)
225 AWORK(1,MY_IAW+N1)=AWORK(1,MY_IAW+N1)+PHI1*A(1,INOD)
226 AWORK(2,MY_IAW+N1)=AWORK(2,MY_IAW+N1)+PHI1*A(2,INOD)
227 AWORK(3,MY_IAW+N1)=AWORK(3,MY_IAW+N1)+PHI1*A(3,INOD)
228 AWORK(4,MY_IAW+N1)=AWORK(4,MY_IAW+N1)+PHI1*STIFN(INOD)
229 AWORK(1,MY_IAW+N2)=AWORK(1,MY_IAW+N2)+PHI2*A(1,INOD)
230 AWORK(2,MY_IAW+N2)=AWORK(2,MY_IAW+N2)+PHI2*A(2,INOD)
231 AWORK(3,MY_IAW+N2)=AWORK(3,MY_IAW+N2)+PHI2*A(3,INOD)
232 AWORK(4,MY_IAW+N2)=AWORK(4,MY_IAW+N2)+PHI2*STIFN(INOD)
233 AWORK(1,MY_IAW+N3)=AWORK(1,MY_IAW+N3)+PHI3*A(1,INOD)
234 AWORK(2,MY_IAW+N3)=AWORK(2,MY_IAW+N3)+PHI3*A(2,INOD)
235 AWORK(3,MY_IAW+N3)=AWORK(3,MY_IAW+N3)+PHI3*A(3,INOD)
236 AWORK(4,MY_IAW+N3)=AWORK(4,MY_IAW+N3)+PHI3*STIFN(INOD)
237 AWORK(1,MY_IAW+N4)=AWORK(1,MY_IAW+N4)+PHI4*A(1,INOD)
238 AWORK(2,MY_IAW+N4)=AWORK(2,MY_IAW+N4)+PHI4*A(2,INOD)
239 AWORK(3,MY_IAW+N4)=AWORK(3,MY_IAW+N4)+PHI4*A(3,INOD)
240 AWORK(4,MY_IAW+N4)=AWORK(4,MY_IAW+N4)+PHI4*STIFN(INOD)
241C
242 A(1,INOD)=ZERO
243 A(2,INOD)=ZERO
244 A(3,INOD)=ZERO
245 STIFN(INOD)=EM20
246 ENDDO
247 END IF
248 ENDDO
249C-----
250 ELSE
251C-----
252C----HEXA---
253C-----
254 DO I=LFT,LLT
255 N=NFT+I
256 IF(GBUF%OFF(I)/=ZERO) THEN
257C
258 N1=IXS(2,N)
259 N2=IXS(3,N)
260 N3=IXS(4,N)
261 N4=IXS(5,N)
262 N5=IXS(6,N)
263 N6=IXS(7,N)
264 N7=IXS(8,N)
265 N8=IXS(9,N)
266C
267 NSPHDIR=NINT((SOL2SPH(2,N)-SOL2SPH(1,N))**THIRD)
268C
269C-----------------------------------------------
270C SOL2SPH(1,N)+1<=I<=SOLSPH(2,N) <=> N==SPH2SOL(I)
271 DO KP=1,SOL2SPH(2,N)-SOL2SPH(1,N)
272 NP =SOL2SPH(1,N)+KP
273 IR=IRST(1,NP-FIRST_SPHSOL+1)
274 IS=IRST(2,NP-FIRST_SPHSOL+1)
275 IT=IRST(3,NP-FIRST_SPHSOL+1)
276 KSI = A_GAUSS(IR,NSPHDIR)
277 ETA = A_GAUSS(IS,NSPHDIR)
278 ZETA = A_GAUSS(IT,NSPHDIR)
279C
280 PHI1=ONE_OVER_8*(ONE-KSI)*(ONE-ETA)*(ONE-ZETA)
281 PHI2=ONE_OVER_8*(ONE-KSI)*(ONE-ETA)*(ONE+ZETA)
282 PHI3=ONE_OVER_8*(ONE+KSI)*(ONE-ETA)*(ONE+ZETA)
283 PHI4=ONE_OVER_8*(ONE+KSI)*(ONE-ETA)*(ONE-ZETA)
284 PHI5=ONE_OVER_8*(ONE-KSI)*(ONE+ETA)*(ONE-ZETA)
285 PHI6=ONE_OVER_8*(ONE-KSI)*(ONE+ETA)*(ONE+ZETA)
286 PHI7=ONE_OVER_8*(ONE+KSI)*(ONE+ETA)*(ONE+ZETA)
287 PHI8=ONE_OVER_8*(ONE+KSI)*(ONE+ETA)*(ONE-ZETA)
288C
289 INOD=KXSP(3,NP)
290 AWORK(1,MY_IAW+N1)=AWORK(1,MY_IAW+N1)+PHI1*A(1,INOD)
291 AWORK(2,MY_IAW+N1)=AWORK(2,MY_IAW+N1)+PHI1*A(2,INOD)
292 AWORK(3,MY_IAW+N1)=AWORK(3,MY_IAW+N1)+PHI1*A(3,INOD)
293 AWORK(4,MY_IAW+N1)=AWORK(4,MY_IAW+N1)+PHI1*STIFN(INOD)
294 AWORK(1,MY_IAW+N2)=AWORK(1,MY_IAW+N2)+PHI2*A(1,INOD)
295 AWORK(2,MY_IAW+N2)=AWORK(2,MY_IAW+N2)+PHI2*A(2,INOD)
296 AWORK(3,MY_IAW+N2)=AWORK(3,MY_IAW+N2)+PHI2*A(3,INOD)
297 AWORK(4,MY_IAW+N2)=AWORK(4,MY_IAW+N2)+PHI2*STIFN(INOD)
298 AWORK(1,MY_IAW+N3)=AWORK(1,MY_IAW+N3)+PHI3*A(1,INOD)
299 AWORK(2,MY_IAW+N3)=AWORK(2,MY_IAW+N3)+PHI3*A(2,INOD)
300 AWORK(3,MY_IAW+N3)=AWORK(3,MY_IAW+N3)+PHI3*A(3,INOD)
301 AWORK(4,MY_IAW+N3)=AWORK(4,MY_IAW+N3)+PHI3*STIFN(INOD)
302 AWORK(1,MY_IAW+N4)=AWORK(1,MY_IAW+N4)+PHI4*A(1,INOD)
303 AWORK(2,MY_IAW+N4)=AWORK(2,MY_IAW+N4)+PHI4*A(2,INOD)
304 AWORK(3,MY_IAW+N4)=AWORK(3,MY_IAW+N4)+PHI4*A(3,INOD)
305 AWORK(4,MY_IAW+N4)=AWORK(4,MY_IAW+N4)+PHI4*STIFN(INOD)
306 AWORK(1,MY_IAW+N5)=AWORK(1,MY_IAW+N5)+PHI5*A(1,INOD)
307 AWORK(2,MY_IAW+N5)=AWORK(2,MY_IAW+N5)+PHI5*A(2,INOD)
308 AWORK(3,MY_IAW+N5)=AWORK(3,MY_IAW+N5)+PHI5*A(3,INOD)
309 AWORK(4,MY_IAW+N5)=AWORK(4,MY_IAW+N5)+PHI5*STIFN(INOD)
310 AWORK(1,MY_IAW+N6)=AWORK(1,MY_IAW+N6)+PHI6*A(1,INOD)
311 AWORK(2,MY_IAW+N6)=AWORK(2,MY_IAW+N6)+PHI6*A(2,INOD)
312 AWORK(3,MY_IAW+N6)=AWORK(3,MY_IAW+N6)+PHI6*A(3,INOD)
313 AWORK(4,MY_IAW+N6)=AWORK(4,MY_IAW+N6)+PHI6*STIFN(INOD)
314 AWORK(1,MY_IAW+N7)=AWORK(1,MY_IAW+N7)+PHI7*A(1,INOD)
315 AWORK(2,MY_IAW+N7)=AWORK(2,MY_IAW+N7)+PHI7*A(2,INOD)
316 AWORK(3,MY_IAW+N7)=AWORK(3,MY_IAW+N7)+PHI7*A(3,INOD)
317 AWORK(4,MY_IAW+N7)=AWORK(4,MY_IAW+N7)+PHI7*STIFN(INOD)
318 AWORK(1,MY_IAW+N8)=AWORK(1,MY_IAW+N8)+PHI8*A(1,INOD)
319 AWORK(2,MY_IAW+N8)=AWORK(2,MY_IAW+N8)+PHI8*A(2,INOD)
320 AWORK(3,MY_IAW+N8)=AWORK(3,MY_IAW+N8)+PHI8*A(3,INOD)
321 AWORK(4,MY_IAW+N8)=AWORK(4,MY_IAW+N8)+PHI8*STIFN(INOD)
322C
323 A(1,INOD)=ZERO
324 A(2,INOD)=ZERO
325 A(3,INOD)=ZERO
326 STIFN(INOD)=EM20
327 ENDDO
328 END IF
329 ENDDO
330C--------
331 ENDIF
332 ENDIF
333 IF (IDDW>0) CALL STOPTIMEG(NG)
334 END DO
335C--------
336 350 CONTINUE
337 END DO
338!$OMP END DO
339C
340 CALL MY_BARRIER
341C
342 DO IT=0,NTHREAD-1
343 DO N=NODFT,NODLT
344 IAW=N+IT*NUMNOD
345 A(1,N)=A(1,N)+AWORK(1,IAW)
346 A(2,N)=A(2,N)+AWORK(2,IAW)
347 A(3,N)=A(3,N)+AWORK(3,IAW)
348 STIFN(N)=STIFN(N)+AWORK(4,IAW)
349 END DO
350 END DO
351C
352 CALL MY_BARRIER
353C
354 IF(ITASK==0) DEALLOCATE(AWORK)
355 ELSE ! IPARIT==0
356C-----------------------------------------------
357 NIFTSK = 1+ITASK*NISKY/ NTHREAD
358 NILTSK = (ITASK+1)*NISKY/NTHREAD
359C
360 CALL MY_BARRIER
361C
362 DO NISK=NIFTSK,NILTSK
363 INOD=ISKY(NISK)
364 NP =NOD2SP(INOD)
365 IF(NP/=0)THEN
366 N=SPH2SOL(NP)
367 IF(N/=0)THEN
368#include "lockon.inc"
369 NISKYL = NISKY
370 NISKY = NISKY + 8
371#include "lockoff.inc"
372 IF (NISKYL+8 > LSKYI) THEN
373 CALL ANCMSG(MSGID=243,ANMODE=ANINFO_BLIND)
374 CALL ARRET(2)
375 ENDIF
376C
377 IF (SOL2SPH_TYP(SPH2SOL(NP))==4) THEN
378C---------------
379C------ Tetra --
380C---------------
381 NSOL=SPH2SOL(N)
382C
383 N1=IXS(2,NSOL)
384 N2=IXS(4,NSOL)
385 N3=IXS(7,NSOL)
386 N4=IXS(6,NSOL)
387C
388 IR=IRST(1,N-FIRST_SPHSOL+1)
389 IS=IRST(2,N-FIRST_SPHSOL+1)
390 IT=IRST(3,N-FIRST_SPHSOL+1)
391 NSPHDIR=IGEO(37,IXS(10,NSOL))
392C
393 KSI = A_GAUSS_TETRA(IR,NSPHDIR)
394 ETA = A_GAUSS_TETRA(IS,NSPHDIR)
395 ZETA = A_GAUSS_TETRA(IT,NSPHDIR)
396C
397 PHI1=KSI
398 PHI2=ETA
399 PHI3=ZETA
400 PHI4=1-KSI-ETA-ZETA
401C
402 NISKYL=NISKYL+1
403 ISKY(NISKYL)=N1
404 DO J=1,NFSKYI
405 FSKYI(NISKYL,J)=PHI1*FSKYI(NISK,J)
406 END DO
407 NISKYL=NISKYL+1
408 ISKY(NISKYL)=N2
409 DO J=1,NFSKYI
410 FSKYI(NISKYL,J)=PHI2*FSKYI(NISK,J)
411 END DO
412 NISKYL=NISKYL+1
413 ISKY(NISKYL)=N3
414 DO J=1,NFSKYI
415 FSKYI(NISKYL,J)=PHI3*FSKYI(NISK,J)
416 END DO
417 NISKYL=NISKYL+1
418 ISKY(NISKYL)=N4
419 DO J=1,NFSKYI
420 FSKYI(NISKYL,J)=PHI4*FSKYI(NISK,J)
421 END DO
422C
423 ELSE
424C---------------
425C------ Hexa --
426C---------------
427 N1=IXS(2,N)
428 N2=IXS(3,N)
429 N3=IXS(4,N)
430 N4=IXS(5,N)
431 N5=IXS(6,N)
432 N6=IXS(7,N)
433 N7=IXS(8,N)
434 N8=IXS(9,N)
435C
436 NSPHDIR=NINT((SOL2SPH(2,N)-SOL2SPH(1,N))**THIRD)
437C
438C-----------------------------------------------
439 IR=IRST(1,NP-FIRST_SPHSOL+1)
440 IS=IRST(2,NP-FIRST_SPHSOL+1)
441 IT=IRST(3,NP-FIRST_SPHSOL+1)
442 KSI = A_GAUSS(IR,NSPHDIR)
443 ETA = A_GAUSS(IS,NSPHDIR)
444 ZETA = A_GAUSS(IT,NSPHDIR)
445C
446 PHI1=ONE_OVER_8*(ONE-KSI)*(ONE-ETA)*(ONE-ZETA)
447 PHI2=ONE_OVER_8*(ONE-KSI)*(ONE-ETA)*(ONE+ZETA)
448 PHI3=ONE_OVER_8*(ONE+KSI)*(ONE-ETA)*(ONE+ZETA)
449 PHI4=ONE_OVER_8*(ONE+KSI)*(ONE-ETA)*(ONE-ZETA)
450 PHI5=ONE_OVER_8*(ONE-KSI)*(ONE+ETA)*(ONE-ZETA)
451 PHI6=ONE_OVER_8*(ONE-KSI)*(ONE+ETA)*(ONE+ZETA)
452 PHI7=ONE_OVER_8*(ONE+KSI)*(ONE+ETA)*(ONE+ZETA)
453 PHI8=ONE_OVER_8*(ONE+KSI)*(ONE+ETA)*(ONE-ZETA)
454C
455 NISKYL=NISKYL+1
456 ISKY(NISKYL)=N1
457 DO J=1,NFSKYI
458 FSKYI(NISKYL,J)=PHI1*FSKYI(NISK,J)
459 END DO
460 NISKYL=NISKYL+1
461 ISKY(NISKYL)=N2
462 DO J=1,NFSKYI
463 FSKYI(NISKYL,J)=PHI2*FSKYI(NISK,J)
464 END DO
465 NISKYL=NISKYL+1
466 ISKY(NISKYL)=N3
467 DO J=1,NFSKYI
468 FSKYI(NISKYL,J)=PHI3*FSKYI(NISK,J)
469 END DO
470 NISKYL=NISKYL+1
471 ISKY(NISKYL)=N4
472 DO J=1,NFSKYI
473 FSKYI(NISKYL,J)=PHI4*FSKYI(NISK,J)
474 END DO
475 NISKYL=NISKYL+1
476 ISKY(NISKYL)=N5
477 DO J=1,NFSKYI
478 FSKYI(NISKYL,J)=PHI5*FSKYI(NISK,J)
479 END DO
480 NISKYL=NISKYL+1
481 ISKY(NISKYL)=N6
482 DO J=1,NFSKYI
483 FSKYI(NISKYL,J)=PHI6*FSKYI(NISK,J)
484 END DO
485 NISKYL=NISKYL+1
486 ISKY(NISKYL)=N7
487 DO J=1,NFSKYI
488 FSKYI(NISKYL,J)=PHI7*FSKYI(NISK,J)
489 END DO
490 NISKYL=NISKYL+1
491 ISKY(NISKYL)=N8
492 DO J=1,NFSKYI
493 FSKYI(NISKYL,J)=PHI8*FSKYI(NISK,J)
494 END DO
495 DO J=1,NFSKYI
496 FSKYI(NISK,J)=ZERO
497 END DO
498C
499 ENDIF
500 END IF
501 END IF
502 END DO
503 END IF
504 RETURN
505 END SUBROUTINE SOLTOSPHF
506!||====================================================================
507!|| soltosphp ../engine/source/elements/sph/soltosph.F
508!||--- called by ------------------------------------------------------
509!|| forintp ../engine/source/elements/forintp.F
510!||--- calls -----------------------------------------------------
511!|| initbuf ../engine/share/resol/initbuf.F
512!|| sig_heph1 ../engine/source/elements/sph/soltosph_hour.F
513!|| srep2glo ../engine/source/elements/sph/srep2glo.F
514!|| startimeg ../engine/source/system/timer.F
515!|| stoptimeg ../engine/source/system/timer.F
516!||--- uses -----------------------------------------------------
517!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
518!|| initbuf_mod ../engine/share/resol/initbuf.F
519!||====================================================================
520 SUBROUTINE SOLTOSPHP(
521 . X ,SPBUF ,IXS ,KXSP ,IPARTSP ,
522 . IRST ,ELBUF_TAB,IPARG ,NGROUNC ,IGROUNC ,
523 . SOL2SPH,WA ,PM)
524C-----------------------------------------------
525 USE INITBUF_MOD
526 USE ELBUFDEF_MOD
527C-----------------------------------------------
528C I m p l i c i t T y p e s
529C-----------------------------------------------
530#include "implicit_f.inc"
531C-----------------------------------------------
532C G l o b a l P a r a m e t e r s
533C-----------------------------------------------
534#include "mvsiz_p.inc"
535C-----------------------------------------------
536C C o m m o n B l o c k s
537C-----------------------------------------------
538#include "com01_c.inc"
539#include "com08_c.inc"
540#include "param_c.inc"
541#include "sphcom.inc"
542#include "task_c.inc"
543#include "vect01_c.inc"
544C-----------------------------------------------
545C D u m m y A r g u m e n t s
546C-----------------------------------------------
547 INTEGER IXS(NIXS,*), KXSP(NISP,*),
548 . IPARTSP(*), IRST(3,*), IPARG(NPARG,*), NGROUNC,
549 . IGROUNC(*), SOL2SPH(2,*)
550 my_real
551 . X(3,*), SPBUF(NSPBUF,*), WA(KWASPH,*),PM(NPROPM,*)
552 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
553C-----------------------------------------------
554C L o c a l V a r i a b l e s
555C-----------------------------------------------
556 INTEGER I, N, IP, KP, NG, MG, J, NP, KFT, IG, NELEM,
557 . NEL, OFFSET, MLW, IPLA,NELSP,K,IR,IS,IT,NSPHDIR,
558 . NPTR,NPTS,NPTT,II(6),JJ(6)
559 my_real
560 . RHON, RHOO, DIVV, SM,
561 . R11(MVSIZ),R12(MVSIZ),R13(MVSIZ),
562 . R21(MVSIZ),R22(MVSIZ),R23(MVSIZ),
563 . R31(MVSIZ),R32(MVSIZ),R33(MVSIZ),
564 . T11(MVSIZ),T12(MVSIZ),T13(MVSIZ),
565 . T21(MVSIZ),T22(MVSIZ),T23(MVSIZ),
566 . T31(MVSIZ),T32(MVSIZ),T33(MVSIZ),
567 . RX(MVSIZ),SX(MVSIZ),TX(MVSIZ),
568 . RY(MVSIZ),SY(MVSIZ),TY(MVSIZ),
569 . RZ(MVSIZ),SZ(MVSIZ),TZ(MVSIZ),
570 . G11,G22,G33,G12,G21,G23,G32,G13,G31,
571 . S11,S22,S33,S12,S21,S23,S32,S13,S31,
572 . L11,L22,L33,L12,L21,L23,L32,L13,L31,
573 . SIGLO(MVSIZ,6), STRAGLO(MVSIZ,6), ANGL(MVSIZ,6),
574 . DGLO24(MVSIZ,6),SIG_HEPH(MVSIZ,6,7),
575 . JR0(MVSIZ),JS0(MVSIZ),JT0(MVSIZ),NU(MVSIZ),SIG_HEPH_GLO(MVSIZ,6,7),
576 . RBID(6,MVSIZ),ZETA,ETA,KSI,SIG_HA8(MVSIZ,3,3,3,6)
577C
578C-----
579 TYPE(G_BUFEL_) ,POINTER :: GBUF, GBUFSP
580 TYPE(L_BUFEL_) ,POINTER :: LBUF, LBUFSP, LBUF2
581 TYPE(BUF_MAT_) ,POINTER :: MBUF, MBUFSP
582C-----------------------------------------------
583 my_real A_GAUSS(9,9)
584 DATA A_GAUSS /
585 1 0. ,0. ,0. ,
586 1 0. ,0. ,0. ,
587 1 0. ,0. ,0. ,
588 2 -.577350269189626,0.577350269189626,0. ,
589 2 0. ,0. ,0. ,
590 2 0. ,0. ,0. ,
591 3 -.774596669241483,0. ,0.774596669241483,
592 3 0. ,0. ,0. ,
593 3 0. ,0. ,0. ,
594 4 -.861136311594053,-.339981043584856,0.339981043584856,
595 4 0.861136311594053,0. ,0. ,
596 4 0. ,0. ,0. ,
597 5 -.906179845938664,-.538469310105683,0. ,
598 5 0.538469310105683,0.906179845938664,0. ,
599 5 0. ,0. ,0. ,
600 6 -.932469514203152,-.661209386466265,-.238619186083197,
601 6 0.238619186083197,0.661209386466265,0.932469514203152,
602 6 0. ,0. ,0. ,
603 7 -.949107912342759,-.741531185599394,-.405845151377397,
604 7 0. ,0.405845151377397,0.741531185599394,
605 7 0.949107912342759,0. ,0. ,
606 8 -.960289856497536,-.796666477413627,-.525532409916329,
607 8 -.183434642495650,0.183434642495650,0.525532409916329,
608 8 0.796666477413627,0.960289856497536,0. ,
609 9 -.968160239507626,-.836031107326636,-.613371432700590,
610 9 -.324253423403809,0. ,0.324253423403809,
611 9 0.613371432700590,0.836031107326636,0.968160239507626/
612C-----------------------------------------------
613!$OMP DO SCHEDULE(DYNAMIC,1)
614 DO IG = 1, NGROUNC
615 NG = IGROUNC(IG)
616 IF(IPARG(8,NG)==1)GOTO 300
617 IF (IDDW>0) CALL STARTIMEG(NG)
618 OFFSET = 0
619 ITY = IPARG(5,NG)
620 IPARTSPH= IPARG(69,NG)
621.AND. IF(ITY==1IPARTSPH/=0) THEN
622C
623C---
624 CALL INITBUF(IPARG ,NG ,
625 2 MLW ,NEL ,NFT ,IAD ,ITY ,
626 3 NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,
627 4 JTHE ,JLAG ,JMULT ,JHBE ,JIVF ,
628 5 NVAUX ,JPOR ,JCVT ,JCLOSE ,IPLA ,
629 6 IREP ,IINT ,IGTYP ,ISRAT ,ISROT ,
630 7 ICSEN ,ISORTH ,ISORTHG ,IFAILURE,JSMS )
631 LFT = 1
632 LLT = MIN(NVSIZ,NEL)
633!
634 DO I=1,6
635 II(I) = NEL*(I-1)
636 ENDDO
637!
638C-----------
639 GBUF => ELBUF_TAB(NG)%GBUF
640 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(1,1,1)
641 MBUF => ELBUF_TAB(NG)%BUFLY(1)%MAT(1,1,1)
642C-----------
643 CALL SREP2GLO(
644 1 X, IXS(1,NFT+1),GBUF%GAMA, RX,
645 2 RY, RZ, SX, SY,
646 3 SZ, TX, TY, TZ,
647 4 R11, R12, R13, R21,
648 5 R22, R23, R31, R32,
649 6 R33, T11, T12, T13,
650 7 T21, T22, T23, T31,
651 8 T32, T33, JR0, JS0,
652 9 JT0, NEL, LFT, LLT,
653 A JHBE, JCVT, ISORTH)
654C
655C----------- HEPH -------
656 IF (JHBE==24) THEN
657C------------------------
658 SIG_HEPH(1:MVSIZ,1:6,1:7) = ZERO
659 CALL SIG_HEPH1(
660 1 JR0, JS0, JT0, GBUF%SIG,
661 2 GBUF%HOURG,SIG_HEPH, PM, IXS,
662 3 II, NEL, LFT, LLT)
663C
664 IF(ISORTH==0)THEN
665 DO J=1,7
666 DO I=LFT,LLT
667C hourglass stress in corotational system
668 L11 =SIG_HEPH(I,1,J)
669 L22 =SIG_HEPH(I,2,J)
670 L33 =SIG_HEPH(I,3,J)
671 L12 =SIG_HEPH(I,4,J)
672 L23 =SIG_HEPH(I,5,J)
673 L13 =SIG_HEPH(I,6,J)
674 S11 =L11*R11(I)+L12*R12(I)+L13*R13(I)
675 S12 =L11*R21(I)+L12*R22(I)+L13*R23(I)
676 S13 =L11*R31(I)+L12*R32(I)+L13*R33(I)
677 S21 =L12*R11(I)+L22*R12(I)+L23*R13(I)
678 S22 =L12*R21(I)+L22*R22(I)+L23*R23(I)
679 S23 =L12*R31(I)+L22*R32(I)+L23*R33(I)
680 S31 =L13*R11(I)+L23*R12(I)+L33*R13(I)
681 S32 =L13*R21(I)+L23*R22(I)+L33*R23(I)
682 S33 =L13*R31(I)+L23*R32(I)+L33*R33(I)
683 SIG_HEPH_GLO(I,1,J)=R11(I)*S11+R12(I)*S21+R13(I)*S31
684 SIG_HEPH_GLO(I,2,J)=R21(I)*S12+R22(I)*S22+R23(I)*S32
685 SIG_HEPH_GLO(I,3,J)=R31(I)*S13+R32(I)*S23+R33(I)*S33
686 SIG_HEPH_GLO(I,4,J)=R11(I)*S12+R12(I)*S22+R13(I)*S32
687 SIG_HEPH_GLO(I,5,J)=R21(I)*S13+R22(I)*S23+R23(I)*S33
688 SIG_HEPH_GLO(I,6,J)=R11(I)*S13+R12(I)*S23+R13(I)*S33
689 END DO
690 END DO
691 ELSE
692 DO J=1,7
693 DO I=LFT,LLT
694C hourglass stress in orthotropic system
695 L11 =SIG_HEPH(I,1,J)
696 L22 =SIG_HEPH(I,2,J)
697 L33 =SIG_HEPH(I,3,J)
698 L12 =SIG_HEPH(I,4,J)
699 L23 =SIG_HEPH(I,5,J)
700 L13 =SIG_HEPH(I,6,J)
701 S11 =L11*T11(I)+L12*T12(I)+L13*T13(I)
702 S12 =L11*T21(I)+L12*T22(I)+L13*T23(I)
703 S13 =L11*T31(I)+L12*T32(I)+L13*T33(I)
704 S21 =L12*T11(I)+L22*T12(I)+L23*T13(I)
705 S22 =L12*T21(I)+L22*T22(I)+L23*T23(I)
706 S23 =L12*T31(I)+L22*T32(I)+L23*T33(I)
707 S31 =L13*T11(I)+L23*T12(I)+L33*T13(I)
708 S32 =L13*T21(I)+L23*T22(I)+L33*T23(I)
709 S33 =L13*T31(I)+L23*T32(I)+L33*T33(I)
710 SIG_HEPH_GLO(I,1,J)=T11(I)*S11+T12(I)*S21+T13(I)*S31
711 SIG_HEPH_GLO(I,2,J)=T21(I)*S12+T22(I)*S22+T23(I)*S32
712 SIG_HEPH_GLO(I,3,J)=T31(I)*S13+T32(I)*S23+T33(I)*S33
713 SIG_HEPH_GLO(I,4,J)=T11(I)*S12+T12(I)*S22+T13(I)*S32
714 SIG_HEPH_GLO(I,5,J)=T21(I)*S13+T22(I)*S23+T23(I)*S33
715 SIG_HEPH_GLO(I,6,J)=T11(I)*S13+T12(I)*S23+T13(I)*S33
716 END DO
717 END DO
718 ENDIF
719C----------- HA8 -------
720 ELSEIF (JHBE==14) THEN
721C------------------------
722 NPTR = ELBUF_TAB(NG)%NPTR
723 NPTS = ELBUF_TAB(NG)%NPTS
724 NPTT = ELBUF_TAB(NG)%NPTT
725 IF(ISORTH==0)THEN
726 DO IR=1,NPTR
727 DO IS=1,NPTS
728 DO IT=1,NPTT
729C--------- convention HA8 : ETA-> r / ZETA -> s / KSI -> t
730C--------- convention SOL2SPH : KSI-> r / ETA -> s / ZETA -> t
731C--------- on permute KSI,ETA,ZETA
732 LBUF2 => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IT,IR,IS)
733C---------
734 DO I=LFT,LLT
735C hourglass stress in corotational system
736 L11 =LBUF2%SIG(II(1)+I)
737 L22 =LBUF2%SIG(II(2)+I)
738 L33 =LBUF2%SIG(II(3)+I)
739 L12 =LBUF2%SIG(II(4)+I)
740 L23 =LBUF2%SIG(II(5)+I)
741 L13 =LBUF2%SIG(II(6)+I)
742 S11 =L11*R11(I)+L12*R12(I)+L13*R13(I)
743 S12 =L11*R21(I)+L12*R22(I)+L13*R23(I)
744 S13 =L11*R31(I)+L12*R32(I)+L13*R33(I)
745 S21 =L12*R11(I)+L22*R12(I)+L23*R13(I)
746 S22 =L12*R21(I)+L22*R22(I)+L23*R23(I)
747 S23 =L12*R31(I)+L22*R32(I)+L23*R33(I)
748 S31 =L13*R11(I)+L23*R12(I)+L33*R13(I)
749 S32 =L13*R21(I)+L23*R22(I)+L33*R23(I)
750 S33 =L13*R31(I)+L23*R32(I)+L33*R33(I)
751 SIG_HA8(I,IR,IS,IT,1)=R11(I)*S11+R12(I)*S21+R13(I)*S31
752 SIG_HA8(I,IR,IS,IT,2)=R21(I)*S12+R22(I)*S22+R23(I)*S32
753 SIG_HA8(I,IR,IS,IT,3)=R31(I)*S13+R32(I)*S23+R33(I)*S33
754 SIG_HA8(I,IR,IS,IT,4)=R11(I)*S12+R12(I)*S22+R13(I)*S32
755 SIG_HA8(I,IR,IS,IT,5)=R21(I)*S13+R22(I)*S23+R23(I)*S33
756 SIG_HA8(I,IR,IS,IT,6)=R11(I)*S13+R12(I)*S23+R13(I)*S33
757 END DO
758 END DO
759 END DO
760 END DO
761 ELSE
762 DO IR=1,NPTR
763 DO IS=1,NPTS
764 DO IT=1,NPTT
765 LBUF2 => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,IT)
766 DO I=LFT,LLT
767C hourglass stress in orthotropic system
768 L11 =LBUF2%SIG(II(1)+I)
769 L22 =LBUF2%SIG(II(2)+I)
770 L33 =LBUF2%SIG(II(3)+I)
771 L12 =LBUF2%SIG(II(4)+I)
772 L23 =LBUF2%SIG(II(5)+I)
773 L13 =LBUF2%SIG(II(6)+I)
774 S11 =L11*T11(I)+L12*T12(I)+L13*T13(I)
775 S12 =L11*T21(I)+L12*T22(I)+L13*T23(I)
776 S13 =L11*T31(I)+L12*T32(I)+L13*T33(I)
777 S21 =L12*T11(I)+L22*T12(I)+L23*T13(I)
778 S22 =L12*T21(I)+L22*T22(I)+L23*T23(I)
779 S23 =L12*T31(I)+L22*T32(I)+L23*T33(I)
780 S31 =L13*T11(I)+L23*T12(I)+L33*T13(I)
781 S32 =L13*T21(I)+L23*T22(I)+L33*T23(I)
782 S33 =L13*T31(I)+L23*T32(I)+L33*T33(I)
783 SIG_HA8(I,IR,IS,IT,1)=T11(I)*S11+T12(I)*S21+T13(I)*S31
784 SIG_HA8(I,IR,IS,IT,2)=T21(I)*S12+T22(I)*S22+T23(I)*S32
785 SIG_HA8(I,IR,IS,IT,3)=T31(I)*S13+T32(I)*S23+T33(I)*S33
786 SIG_HA8(I,IR,IS,IT,4)=T11(I)*S12+T12(I)*S22+T13(I)*S32
787 SIG_HA8(I,IR,IS,IT,5)=T21(I)*S13+T22(I)*S23+T23(I)*S33
788 SIG_HA8(I,IR,IS,IT,6)=T11(I)*S13+T12(I)*S23+T13(I)*S33
789 END DO
790 END DO
791 END DO
792 END DO
793 ENDIF
794C----------- Standard formulation -------
795 ELSEIF (JCVT == 0)THEN
796C------------------------------------------
797 DO I=LFT,LLT
798C mean stress in global system
799 SIGLO(I,1) =GBUF%SIG(II(1)+I)
800 SIGLO(I,2) =GBUF%SIG(II(2)+I)
801 SIGLO(I,3) =GBUF%SIG(II(3)+I)
802 SIGLO(I,4) =GBUF%SIG(II(4)+I)
803 SIGLO(I,5) =GBUF%SIG(II(5)+I)
804 SIGLO(I,6) =GBUF%SIG(II(6)+I)
805 END DO
806C----------- Corotational formulation -------
807 ELSE
808C--------------------------------------------
809C
810 IF (ISORTH== 0) THEN
811 DO I=LFT,LLT
812C mean stress in corotational system
813 L11 =GBUF%SIG(II(1)+I)
814 L22 =GBUF%SIG(II(2)+I)
815 L33 =GBUF%SIG(II(3)+I)
816 L12 =GBUF%SIG(II(4)+I)
817 L23 =GBUF%SIG(II(5)+I)
818 L13 =GBUF%SIG(II(6)+I)
819 S11 =L11*R11(I)+L12*R12(I)+L13*R13(I)
820 S12 =L11*R21(I)+L12*R22(I)+L13*R23(I)
821 S13 =L11*R31(I)+L12*R32(I)+L13*R33(I)
822 S21 =L12*R11(I)+L22*R12(I)+L23*R13(I)
823 S22 =L12*R21(I)+L22*R22(I)+L23*R23(I)
824 S23 =L12*R31(I)+L22*R32(I)+L23*R33(I)
825 S31 =L13*R11(I)+L23*R12(I)+L33*R13(I)
826 S32 =L13*R21(I)+L23*R22(I)+L33*R23(I)
827 S33 =L13*R31(I)+L23*R32(I)+L33*R33(I)
828 SIGLO(I,1)=R11(I)*S11+R12(I)*S21+R13(I)*S31
829 SIGLO(I,2)=R21(I)*S12+R22(I)*S22+R23(I)*S32
830 SIGLO(I,3)=R31(I)*S13+R32(I)*S23+R33(I)*S33
831 SIGLO(I,4)=R11(I)*S12+R12(I)*S22+R13(I)*S32
832 SIGLO(I,5)=R21(I)*S13+R22(I)*S23+R23(I)*S33
833 SIGLO(I,6)=R11(I)*S13+R12(I)*S23+R13(I)*S33
834 END DO
835 ELSE
836 DO I=LFT,LLT
837C mean stress in orthotropic system
838 L11 =GBUF%SIG(II(1)+I)
839 L22 =GBUF%SIG(II(2)+I)
840 L33 =GBUF%SIG(II(3)+I)
841 L12 =GBUF%SIG(II(4)+I)
842 L23 =GBUF%SIG(II(5)+I)
843 L13 =GBUF%SIG(II(6)+I)
844 S11 =L11*T11(I)+L12*T12(I)+L13*T13(I)
845 S12 =L11*T21(I)+L12*T22(I)+L13*T23(I)
846 S13 =L11*T31(I)+L12*T32(I)+L13*T33(I)
847 S21 =L12*T11(I)+L22*T12(I)+L23*T13(I)
848 S22 =L12*T21(I)+L22*T22(I)+L23*T23(I)
849 S23 =L12*T31(I)+L22*T32(I)+L23*T33(I)
850 S31 =L13*T11(I)+L23*T12(I)+L33*T13(I)
851 S32 =L13*T21(I)+L23*T22(I)+L33*T23(I)
852 S33 =L13*T31(I)+L23*T32(I)+L33*T33(I)
853 SIGLO(I,1)=T11(I)*S11+T12(I)*S21+T13(I)*S31
854 SIGLO(I,2)=T21(I)*S12+T22(I)*S22+T23(I)*S32
855 SIGLO(I,3)=T31(I)*S13+T32(I)*S23+T33(I)*S33
856 SIGLO(I,4)=T11(I)*S12+T12(I)*S22+T13(I)*S32
857 SIGLO(I,5)=T21(I)*S13+T22(I)*S23+T23(I)*S33
858 SIGLO(I,6)=T11(I)*S13+T12(I)*S23+T13(I)*S33
859 END DO
860 END IF
861C------------------------
862 ENDIF
863C-----------------------
864 IF(ELBUF_TAB(NG)%BUFLY(1)%L_STRA > 0)THEN
865 IF(JCVT == 0)THEN
866 DO I=LFT,LLT
867 STRAGLO(I,1)=LBUF%STRA(II(1)+I)
868 STRAGLO(I,2)=LBUF%STRA(II(2)+I)
869 STRAGLO(I,3)=LBUF%STRA(II(3)+I)
870 STRAGLO(I,4)=LBUF%STRA(II(4)+I)
871 STRAGLO(I,5)=LBUF%STRA(II(5)+I)
872 STRAGLO(I,6)=LBUF%STRA(II(6)+I)
873 END DO
874 ELSEIF(ISORTH==0)THEN
875 DO I=LFT,LLT
876C
877C strain in corotational system
878 L11 =LBUF%STRA(II(1)+I)
879 L22 =LBUF%STRA(II(2)+I)
880 L33 =LBUF%STRA(II(3)+I)
881 L12 =HALF*LBUF%STRA(II(4)+I)
882 L23 =HALF*LBUF%STRA(II(5)+I)
883 L13 =HALF*LBUF%STRA(II(6)+I)
884 S11 =L11*R11(I)+L12*R12(I)+L13*R13(I)
885 S12 =L11*R21(I)+L12*R22(I)+L13*R23(I)
886 S13 =L11*R31(I)+L12*R32(I)+L13*R33(I)
887 S21 =L12*R11(I)+L22*R12(I)+L23*R13(I)
888 S22 =L12*R21(I)+L22*R22(I)+L23*R23(I)
889 S23 =L12*R31(I)+L22*R32(I)+L23*R33(I)
890 S31 =L13*R11(I)+L23*R12(I)+L33*R13(I)
891 S32 =L13*R21(I)+L23*R22(I)+L33*R23(I)
892 S33 =L13*R31(I)+L23*R32(I)+L33*R33(I)
893 STRAGLO(I,1)=R11(I)*S11+R12(I)*S21+R13(I)*S31
894 STRAGLO(I,2)=R21(I)*S12+R22(I)*S22+R23(I)*S32
895 STRAGLO(I,3)=R31(I)*S13+R32(I)*S23+R33(I)*S33
896 STRAGLO(I,4)=TWO*(R11(I)*S12+R12(I)*S22+R13(I)*S32)
897 STRAGLO(I,5)=TWO*(R21(I)*S13+R22(I)*S23+R23(I)*S33)
898 STRAGLO(I,6)=TWO*(R11(I)*S13+R12(I)*S23+R13(I)*S33)
899 END DO
900 ELSE
901 DO I=LFT,LLT
902C
903C strain in orthotropic system
904 L11 =LBUF%STRA(II(1)+I)
905 L22 =LBUF%STRA(II(2)+I)
906 L33 =LBUF%STRA(II(3)+I)
907 L12 =HALF*LBUF%STRA(II(4)+I)
908 L23 =HALF*LBUF%STRA(II(5)+I)
909 L13 =HALF*LBUF%STRA(II(6)+I)
910 S11 =L11*T11(I)+L12*T12(I)+L13*T13(I)
911 S12 =L11*T21(I)+L12*T22(I)+L13*T23(I)
912 S13 =L11*T31(I)+L12*T32(I)+L13*T33(I)
913 S21 =L12*T11(I)+L22*T12(I)+L23*T13(I)
914 S22 =L12*T21(I)+L22*T22(I)+L23*T23(I)
915 S23 =L12*T31(I)+L22*T32(I)+L23*T33(I)
916 S31 =L13*T11(I)+L23*T12(I)+L33*T13(I)
917 S32 =L13*T21(I)+L23*T22(I)+L33*T23(I)
918 S33 =L13*T31(I)+L23*T32(I)+L33*T33(I)
919 STRAGLO(I,1)=T11(I)*S11+T12(I)*S21+T13(I)*S31
920 STRAGLO(I,2)=T21(I)*S12+T22(I)*S22+T23(I)*S32
921 STRAGLO(I,3)=T31(I)*S13+T32(I)*S23+T33(I)*S33
922 STRAGLO(I,4)=TWO*(T11(I)*S12+T12(I)*S22+T13(I)*S32)
923 STRAGLO(I,5)=TWO*(T21(I)*S13+T22(I)*S23+T23(I)*S33)
924 STRAGLO(I,6)=TWO*(T11(I)*S13+T12(I)*S23+T13(I)*S33)
925 END DO
926 END IF
927 END IF
928C-----------
929
930 IF(ELBUF_TAB(NG)%BUFLY(1)%L_ANG > 0)THEN
931.AND. IF(JCVT == 0 ISORTH == 0)THEN
932 DO I=LFT,LLT
933 G11=LBUF%ANG(II(1)+I)
934 G21=LBUF%ANG(II(2)+I)
935 G31=LBUF%ANG(II(3)+I)
936 G12=LBUF%ANG(II(4)+I)
937 G22=LBUF%ANG(II(5)+I)
938 G32=LBUF%ANG(II(6)+I)
939 G13=G21*G32-G31*G22
940 G23=G31*G12-G11*G32
941 G33=G11*G22-G21*G12
942C MATRICE DE PASSAGE GLOBAL -> ANG
943 S11=RX(I)*G11+SX(I)*G21+TX(I)*G31
944 S12=RX(I)*G12+SX(I)*G22+TX(I)*G32
945 S13=RX(I)*G13+SX(I)*G23+TX(I)*G33
946 S21=RY(I)*G11+SY(I)*G21+TY(I)*G31
947 S22=RY(I)*G12+SY(I)*G22+TY(I)*G32
948 S23=RY(I)*G13+SY(I)*G23+TY(I)*G33
949 S31=RZ(I)*G11+SZ(I)*G21+TZ(I)*G31
950 S32=RZ(I)*G12+SZ(I)*G22+TZ(I)*G32
951 S33=RZ(I)*G13+SZ(I)*G23+TZ(I)*G33
952 ANGL(I,1)=S11
953 ANGL(I,2)=S21
954 ANGL(I,3)=S31
955 ANGL(I,4)=S12
956 ANGL(I,5)=S22
957 ANGL(I,6)=S32
958 END DO
959.AND. ELSEIF(JCVT /=0 ISORTH == 0)THEN
960 DO I=LFT,LLT
961 G11=LBUF%ANG(II(1)+I)
962 G21=LBUF%ANG(II(2)+I)
963 G31=LBUF%ANG(II(3)+I)
964 G12=LBUF%ANG(II(4)+I)
965 G22=LBUF%ANG(II(5)+I)
966 G32=LBUF%ANG(II(6)+I)
967 G13=G21*G32-G31*G22
968 G23=G31*G12-G11*G32
969 G33=G11*G22-G21*G12
970C MATRICE DE PASSAGE GLOBAL -> ANG
971 S11=R11(I)*G11+R12(I)*G21+R13(I)*G31
972 S12=R11(I)*G12+R12(I)*G22+R13(I)*G32
973 S13=R11(I)*G13+R12(I)*G23+R13(I)*G33
974 S21=R21(I)*G11+R22(I)*G21+R23(I)*G31
975 S22=R21(I)*G12+R22(I)*G22+R23(I)*G32
976 S23=R21(I)*G13+R22(I)*G23+R23(I)*G33
977 S31=R31(I)*G11+R32(I)*G21+R33(I)*G31
978 S32=R31(I)*G12+R32(I)*G22+R33(I)*G32
979 S33=R31(I)*G13+R32(I)*G23+R33(I)*G33
980 ANGL(I,1)=S11
981 ANGL(I,2)=S21
982 ANGL(I,3)=S31
983 ANGL(I,4)=S12
984 ANGL(I,5)=S22
985 ANGL(I,6)=S32
986 END DO
987 ELSE
988 DO I=LFT,LLT
989C
990C ISorth /=0 (ANG is given both for solid & sph wrt orthotropic system)
991C MATRICE DE PASSAGE ORTHOTROPE -> ANG
992 ANGL(I,1)=LBUF%ANG(II(1)+I)
993 ANGL(I,2)=LBUF%ANG(II(2)+I)
994 ANGL(I,3)=LBUF%ANG(II(3)+I)
995 ANGL(I,4)=LBUF%ANG(II(4)+I)
996 ANGL(I,5)=LBUF%ANG(II(5)+I)
997 ANGL(I,6)=LBUF%ANG(II(6)+I)
998 END DO
999 END IF
1000 END IF
1001C-----------
1002 IF(ELBUF_TAB(NG)%BUFLY(1)%L_DGLO > 0)THEN
1003
1004.AND. IF(JCVT == 0 ISORTH == 0)THEN
1005 DO I=LFT,LLT
1006C TENSOR wrt ISOPARAMETRIC SYSTEM
1007 G11=LBUF%DGLO(II(1)+I)
1008 G22=LBUF%DGLO(II(2)+I)
1009 G33=LBUF%DGLO(II(3)+I)
1010 G12=LBUF%DGLO(II(4)+I)
1011 G23=LBUF%DGLO(II(5)+I)
1012 G13=LBUF%DGLO(II(6)+I)
1013 S11=G11*RX(I)+G12*SX(I)+G13*TX(I)
1014 S12=G11*RY(I)+G12*SY(I)+G13*TY(I)
1015 S13=G11*RZ(I)+G12*SZ(I)+G13*TZ(I)
1016 S21=G12*RX(I)+G22*SX(I)+G23*TX(I)
1017 S22=G12*RY(I)+G22*SY(I)+G23*TY(I)
1018 S23=G12*RZ(I)+G22*SZ(I)+G23*TZ(I)
1019 S31=G13*RX(I)+G23*SX(I)+G33*TX(I)
1020 S32=G13*RY(I)+G23*SY(I)+G33*TY(I)
1021 S33=G13*RZ(I)+G23*SZ(I)+G33*TZ(I)
1022C TENSOR wrt GLOBAL SYSTEM
1023 DGLO24(I,1)=RX(I)*S11+SX(I)*S21+TX(I)*S31
1024 DGLO24(I,2)=RY(I)*S12+SY(I)*S22+TY(I)*S32
1025 DGLO24(I,3)=RZ(I)*S13+SZ(I)*S23+TZ(I)*S33
1026 DGLO24(I,4)=RX(I)*S12+SX(I)*S22+TX(I)*S32
1027 DGLO24(I,5)=RY(I)*S13+SY(I)*S23+TY(I)*S33
1028 DGLO24(I,6)=RX(I)*S13+SX(I)*S23+TX(I)*S33
1029 END DO
1030.AND. ELSEIF(JCVT /=0 ISORTH == 0)THEN
1031 DO I=LFT,LLT
1032C TENSOR wrt COROTATIONAL SYSTEM
1033 G11=LBUF%DGLO(II(1)+I)
1034 G22=LBUF%DGLO(II(2)+I)
1035 G33=LBUF%DGLO(II(3)+I)
1036 G12=LBUF%DGLO(II(4)+I)
1037 G23=LBUF%DGLO(II(5)+I)
1038 G13=LBUF%DGLO(II(6)+I)
1039 S11=G11*R11(I)+G12*R12(I)+G13*R13(I)
1040 S12=G11*R21(I)+G12*R22(I)+G13*R23(I)
1041 S13=G11*R31(I)+G12*R32(I)+G13*R33(I)
1042 S21=G12*R11(I)+G22*R12(I)+G23*R13(I)
1043 S22=G12*R21(I)+G22*R22(I)+G23*R23(I)
1044 S23=G12*R31(I)+G22*R32(I)+G23*R33(I)
1045 S31=G13*R11(I)+G23*R12(I)+G33*R13(I)
1046 S32=G13*R21(I)+G23*R22(I)+G33*R23(I)
1047 S33=G13*R31(I)+G23*R32(I)+G33*R33(I)
1048C TENSOR wrt GLOBAL SYSTEM
1049 DGLO24(I,1)=R11(I)*S11+R12(I)*S21+R13(I)*S31
1050 DGLO24(I,2)=R21(I)*S12+R22(I)*S22+R23(I)*S32
1051 DGLO24(I,3)=R31(I)*S13+R32(I)*S23+R33(I)*S33
1052 DGLO24(I,4)=R11(I)*S12+R12(I)*S22+R13(I)*S32
1053 DGLO24(I,5)=R21(I)*S13+R22(I)*S23+R23(I)*S33
1054 DGLO24(I,6)=R11(I)*S13+R12(I)*S23+R13(I)*S33
1055 END DO
1056 ELSE
1057C
1058C ISorth /=0 (orthotropic system is the same for solid & sph)
1059C TENSOR wrt ORTHOTROPIC SYSTEM
1060 DO I=LFT,LLT
1061 DGLO24(I,1)=LBUF%DGLO(II(1)+I)
1062 DGLO24(I,2)=LBUF%DGLO(II(2)+I)
1063 DGLO24(I,3)=LBUF%DGLO(II(3)+I)
1064 DGLO24(I,4)=LBUF%DGLO(II(4)+I)
1065 DGLO24(I,5)=LBUF%DGLO(II(5)+I)
1066 DGLO24(I,6)=LBUF%DGLO(II(6)+I)
1067 END DO
1068 END IF
1069 END IF
1070C-----------
1071 DO I=LFT,LLT
1072 IF(GBUF%OFF(I)==ZERO) CYCLE
1073 N=NFT+I
1074C
1075C SOL2SPH(1,N)+1<=I<=SOLSPH(2,N) <=> N==SPH2SOL(I)
1076 NSPHDIR=NINT((SOL2SPH(2,N)-SOL2SPH(1,N))**THIRD)
1077 DO KP=1,SOL2SPH(2,N)-SOL2SPH(1,N)
1078C
1079 NP=SOL2SPH(1,N)+KP
1080 MG =MOD(-KXSP(2,NP),NGROUP+1)
1081 NELSP=IPARG(2,MG)
1082 KFT=IPARG(3,MG)
1083 GBUFSP => ELBUF_TAB(MG)%GBUF
1084 LBUFSP => ELBUF_TAB(MG)%BUFLY(1)%LBUF(1,1,1)
1085 MBUFSP => ELBUF_TAB(MG)%BUFLY(1)%MAT(1,1,1)
1086 J=NP-KFT
1087 RHON = GBUF%RHO(I)
1088 RHOO = WA(10,NP)
1089 DIVV = (RHOO-RHON)/MAX(EM30,RHOO*DT1)
1090 WA(13,NP) = DIVV
1091 WA(14,NP) = ZERO
1092 SPBUF(2,NP) = RHON
1093 GBUFSP%RHO(J) = RHON
1094C
1095C group was not computed
1096C (there is no cloud active particle within the group)
1097C IF(IPARG(8,MG)==1)CYCLE
1098C
1099 GBUFSP%EINT(J) =GBUF%EINT(I)
1100C
1101!
1102 DO K=1,6
1103 JJ(K) = NELSP*(K-1)
1104 ENDDO
1105!
1106C-----------
1107 IF (JHBE==14) THEN
1108C HA8 stress
1109 IR=IRST(1,NP-FIRST_SPHSOL+1)
1110 IS=IRST(2,NP-FIRST_SPHSOL+1)
1111 IT=IRST(3,NP-FIRST_SPHSOL+1)
1112 DO K=1,6
1113 GBUFSP%SIG(JJ(K)+J)=SIG_HA8(I,IR,IS,IT,K)
1114 ENDDO
1115 ELSEIF (JHBE==24) THEN
1116C Hourglass stress contribution for HEPH
1117 IR=IRST(1,NP-FIRST_SPHSOL+1)
1118 IS=IRST(2,NP-FIRST_SPHSOL+1)
1119 IT=IRST(3,NP-FIRST_SPHSOL+1)
1120C--- Permutation (KSI-> ETA;ETA->ZETA;ZETA->KSI) for consistencvy with HEPH convention
1121 ETA = A_GAUSS(IR,NSPHDIR)
1122 ZETA = A_GAUSS(IS,NSPHDIR)
1123 KSI = A_GAUSS(IT,NSPHDIR)
1124C-----------
1125 DO K=1,6
1126 GBUFSP%SIG(JJ(K)+J) = SIG_HEPH_GLO(I,K,1)
1127 . +ZETA*SIG_HEPH_GLO(I,K,2)
1128 . +ETA*SIG_HEPH_GLO(I,K,3)
1129 . +KSI*SIG_HEPH_GLO(I,K,4)
1130 . +ZETA*ETA*SIG_HEPH_GLO(I,K,5)
1131 . +ZETA*KSI*SIG_HEPH_GLO(I,K,6)
1132 . +ETA*KSI*SIG_HEPH_GLO(I,K,7)
1133 END DO
1134 ELSE
1135 GBUFSP%SIG(JJ(1)+J) = SIGLO(I,1)
1136 GBUFSP%SIG(JJ(2)+J) = SIGLO(I,2)
1137 GBUFSP%SIG(JJ(3)+J) = SIGLO(I,3)
1138 GBUFSP%SIG(JJ(4)+J) = SIGLO(I,4)
1139 GBUFSP%SIG(JJ(5)+J) = SIGLO(I,5)
1140 GBUFSP%SIG(JJ(6)+J) = SIGLO(I,6)
1141 ENDIF
1142C-----------
1143 WA(1,NP)=GBUFSP%SIG(JJ(1)+J)
1144 WA(2,NP)=GBUFSP%SIG(JJ(2)+J)
1145 WA(3,NP)=GBUFSP%SIG(JJ(3)+J)
1146 WA(4,NP)=GBUFSP%SIG(JJ(4)+J)
1147 WA(5,NP)=GBUFSP%SIG(JJ(5)+J)
1148 WA(6,NP)=GBUFSP%SIG(JJ(6)+J)
1149C
1150C (particles ARE computed with rho_old, Eold...)
1151C-----------
1152 IF(GBUF%G_PLA > 0) GBUFSP%PLA(J) = GBUF%PLA(I)
1153 IF(GBUF%G_EPSD> 0) GBUFSP%EPSD(J)= GBUF%EPSD(I)
1154 IF(GBUF%G_EPSQ> 0) GBUFSP%EPSQ(J)= GBUF%EPSQ(I)
1155C-----------
1156 IF(GBUF%G_GAMA > 0)THEN
1157C
1158C TIJ stores global to orthotropic system
1159 GBUFSP%GAMA(JJ(1)+J)=T11(I)
1160 GBUFSP%GAMA(JJ(2)+J)=T21(I)
1161 GBUFSP%GAMA(JJ(3)+J)=T31(I)
1162 GBUFSP%GAMA(JJ(4)+J)=T12(I)
1163 GBUFSP%GAMA(JJ(5)+J)=T22(I)
1164 GBUFSP%GAMA(JJ(6)+J)=T32(I)
1165 END IF
1166C-----------
1167.AND. IF(ELBUF_TAB(NG)%BUFLY(1)%L_STRA > 0
1168 . ELBUF_TAB(MG)%BUFLY(1)%L_STRA > 0)THEN
1169 LBUFSP%STRA(JJ(1)+J)=STRAGLO(I,1)
1170 LBUFSP%STRA(JJ(2)+J)=STRAGLO(I,2)
1171 LBUFSP%STRA(JJ(3)+J)=STRAGLO(I,3)
1172 LBUFSP%STRA(JJ(4)+J)=STRAGLO(I,4)
1173 LBUFSP%STRA(JJ(5)+J)=STRAGLO(I,5)
1174 LBUFSP%STRA(JJ(6)+J)=STRAGLO(I,6)
1175 END IF
1176C-----------
1177 IF(ELBUF_TAB(NG)%BUFLY(1)%L_ANG > 0)THEN
1178 LBUFSP%ANG(JJ(1)+J)=ANGL(I,1)
1179 LBUFSP%ANG(JJ(2)+J)=ANGL(I,2)
1180 LBUFSP%ANG(JJ(3)+J)=ANGL(I,3)
1181 LBUFSP%ANG(JJ(4)+J)=ANGL(I,4)
1182 LBUFSP%ANG(JJ(5)+J)=ANGL(I,5)
1183 LBUFSP%ANG(JJ(6)+J)=ANGL(I,6)
1184 END IF
1185C-----------
1186 IF(ELBUF_TAB(NG)%BUFLY(1)%L_SF > 0)THEN
1187 LBUFSP%SF(JJ(1)+J)=LBUF%SF(II(1)+I)
1188 LBUFSP%SF(JJ(2)+J)=LBUF%SF(II(2)+I)
1189 LBUFSP%SF(JJ(3)+J)=LBUF%SF(II(3)+I)
1190 END IF
1191C-----------
1192 IF(ELBUF_TAB(NG)%BUFLY(1)%L_DAM > 0)THEN
1193 DO K=1,ELBUF_TAB(NG)%BUFLY(1)%L_DAM
1194 LBUFSP%DAM(JJ(K)+J)=LBUF%DAM(II(K)+I)
1195 ENDDO
1196 END IF
1197C-----------
1198 IF(ELBUF_TAB(NG)%BUFLY(1)%L_DSUM > 0)
1199 . LBUFSP%DSUM(J)=LBUF%DSUM(I)
1200C-----------
1201 IF(ELBUF_TAB(NG)%BUFLY(1)%L_DGLO > 0)THEN
1202 LBUFSP%DGLO(JJ(1)+J)=DGLO24(I,1)
1203 LBUFSP%DGLO(JJ(2)+J)=DGLO24(I,2)
1204 LBUFSP%DGLO(JJ(3)+J)=DGLO24(I,3)
1205 LBUFSP%DGLO(JJ(4)+J)=DGLO24(I,4)
1206 LBUFSP%DGLO(JJ(5)+J)=DGLO24(I,5)
1207 LBUFSP%DGLO(JJ(6)+J)=DGLO24(I,6)
1208 END IF
1209C-----------
1210 IF(ELBUF_TAB(NG)%BUFLY(1)%L_ROB > 0)
1211 . LBUFSP%ROB(J)=LBUF%ROB(I)
1212C-----------
1213 IF(ELBUF_TAB(NG)%BUFLY(1)%L_SIGC > 0)THEN
1214C
1215C Law24 / Stress in crack frame (same for SPH and solids)
1216 LBUFSP%SIGC(JJ(1)+J)=LBUF%SIGC(II(1)+I)
1217 LBUFSP%SIGC(JJ(2)+J)=LBUF%SIGC(II(2)+I)
1218 LBUFSP%SIGC(JJ(3)+J)=LBUF%SIGC(II(3)+I)
1219 LBUFSP%SIGC(JJ(4)+J)=LBUF%SIGC(II(4)+I)
1220 LBUFSP%SIGC(JJ(5)+J)=LBUF%SIGC(II(5)+I)
1221 LBUFSP%SIGC(JJ(6)+J)=LBUF%SIGC(II(6)+I)
1222 END IF
1223C-----------
1224 IF(ELBUF_TAB(NG)%BUFLY(1)%L_CRAK > 0)THEN
1225 LBUFSP%CRAK(JJ(1)+J)=LBUF%CRAK(II(1)+I)
1226 LBUFSP%CRAK(JJ(2)+J)=LBUF%CRAK(II(2)+I)
1227 LBUFSP%CRAK(JJ(3)+J)=LBUF%CRAK(II(3)+I)
1228 END IF
1229C-----------
1230 IF(ELBUF_TAB(NG)%BUFLY(1)%L_EPSA > 0)THEN
1231 LBUFSP%EPSA(JJ(1)+J)=LBUF%EPSA(II(1)+I)
1232 LBUFSP%EPSA(JJ(2)+J)=LBUF%EPSA(II(2)+I)
1233 LBUFSP%EPSA(JJ(3)+J)=LBUF%EPSA(II(3)+I)
1234 END IF
1235C-----------
1236 IF(ELBUF_TAB(NG)%BUFLY(1)%L_SIGA > 0)THEN
1237 LBUFSP%SIGA(JJ(1)+J)=LBUF%SIGA(II(1)+I)
1238 LBUFSP%SIGA(JJ(2)+J)=LBUF%SIGA(II(2)+I)
1239 LBUFSP%SIGA(JJ(3)+J)=LBUF%SIGA(II(3)+I)
1240 END IF
1241C-----------
1242C Stress in orthotropic skew for mulaw
1243 IF(ELBUF_TAB(NG)%BUFLY(1)%L_SIGL > 0)THEN
1244 LBUFSP%SIGL(JJ(1)+J)=LBUF%SIGL(II(1)+I)
1245 LBUFSP%SIGL(JJ(2)+J)=LBUF%SIGL(II(2)+I)
1246 LBUFSP%SIGL(JJ(3)+J)=LBUF%SIGL(II(3)+I)
1247 LBUFSP%SIGL(JJ(4)+J)=LBUF%SIGL(II(4)+I)
1248 LBUFSP%SIGL(JJ(5)+J)=LBUF%SIGL(II(5)+I)
1249 LBUFSP%SIGL(JJ(6)+J)=LBUF%SIGL(II(6)+I)
1250 END IF
1251C-----------
1252C User variables (same for SPH and solids)
1253 IF(ELBUF_TAB(NG)%BUFLY(1)%NVAR_MAT > 0)THEN
1254 DO K=1,ELBUF_TAB(NG)%BUFLY(1)%NVAR_MAT
1255 MBUFSP%VAR(NELSP*(K-1)+J) = MBUF%VAR(NEL*(K-1)+I)
1256 END DO
1257 ENDIF
1258C-----------
1259 ENDDO
1260 ENDDO
1261 END IF
1262 IF (IDDW>0) CALL STOPTIMEG(NG)
1263C--------
1264 300 CONTINUE
1265 END DO
1266!$OMP END DO
1267C-----------------------------------------------
1268 RETURN
1269 END SUBROUTINE SOLTOSPHP
subroutine soltosphf(a, spbuf, ixs, kxsp, ipartsp, nod2sp, irst, ngrounc, igrounc, iparg, stifn, sol2sph, sph2sol, elbuf_tab, itask, nodft, nodlt, isky, fskyi, igeo, sol2sph_typ)
Definition soltosph.F:44
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889