OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
intti2.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!|| intti2 ../engine/source/interfaces/interf/intti2.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| intti12v ../engine/source/interfaces/interf/intti12.F
29!|| intti2v ../engine/source/interfaces/interf/intti2v.F
30!||--- uses -----------------------------------------------------
31!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
32!||====================================================================
33 SUBROUTINE intti2(IPARI,X ,V ,
34 . A ,VR ,AR ,KHIE ,MS ,
35 . IN ,WEIGHT,WA ,SKEW ,
36 . INTBUF_TAB )
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE intbufdef_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "com04_c.inc"
49#include "param_c.inc"
50#include "task_c.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER IPARI(NPARI,*), WEIGHT(*),KHIE
55C REAL
56 my_real
57 . x(*), v(*), a(*),ar(*),vr(*), ms(*),in(*),
58 . wa(*),skew(*)
59
60 TYPE(intbuf_struct_) INTBUF_TAB(*)
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER N, NTY, JI, JB, NMN, NINT,ILAGM
65 INTEGER :: ILEV,II,J
66C-----------------------------------------------
67C wa are no longer used!!!
68C=======================================================================
69 DO n=ninter,1,-1
70 nty = ipari(7,n)
71 ilagm = 0
72 ilagm = ipari(33,n)
73 IF (ilagm/=0) cycle
74 IF (npari>=26)THEN
75 IF(ipari(26,n)/=khie) cycle
76 ENDIF
77 ji =ipari(1,n)
78 jb =ipari(2,n)
79 nmn =ipari(6,n)
80 nint=n
81 IF (nty == 2) THEN
82 IF(ipari(5,n)>0) THEN ! check if NSN=IPARI(5,N)>0
83 ! Optimization :
84 ! If IPARI(5,N)=NSN=0, some variables are loaded in INTTI2V
85 ! if the number of TYPE2 interface is important (>3000) and if the number of
86 ! spmd domain is quite important (NSPMD>50), the initialisation time is important :
87 ! for_array_copy_in and other initialisations represent up to 5% of total CPUTIME
88 ! and break the scalability of the code
89 CALL intti2v(
90 . ipari(1,n),x ,v ,
91 . a ,vr ,ar ,ms ,in ,
92 . weight ,intbuf_tab(n) )
93 ELSE
94 ! WARNING : if NSN==0 and ILEV==2 or 4, ones needs to scale the mass
95 ilev = ipari(20,n)
96 IF(ilev==2.OR.ilev==4) THEN
97 DO ii=1,nmn
98 j=intbuf_tab(n)%MSR(ii)
99 ms(j)=intbuf_tab(n)%NMAS(ii)
100 ENDDO
101 ENDIF
102 ENDIF
103 ELSEIF (nty == 12) THEN
104 IF(ispmd==0)THEN
105 CALL intti12v(
106 . ipari(1,n),intbuf_tab(n) ,x ,v ,
107 . a ,ms ,weight ,wa ,skew )
108 ENDIF
109 ENDIF
110 ENDDO
111C-----------
112 RETURN
113 END
subroutine intti12v(ipari, intbuf_tab, x, v, a, ms, weight, wa, skew)
Definition intti12.F:317
subroutine intti2(ipari, x, v, a, vr, ar, khie, ms, in, weight, wa, skew, intbuf_tab)
Definition intti2.F:37
subroutine intti2v(ipari, x, v, a, vr, ar, ms, in, weight, intbuf_tab)
Definition intti2v.F:43