OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
intfop1.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!|| intfop1 ../engine/source/interfaces/interf/intfop1.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| i14cmp ../engine/source/interfaces/int14/i14cmp.F
29!|| i15cmp ../engine/source/interfaces/int15/i15cmp.F
30!|| i6main ../engine/source/interfaces/inter3d/i6main.F
31!|| intvo2 ../engine/source/interfaces/inter2d/intvo2.F
32!|| intvo3 ../engine/source/interfaces/inter3d/intvo3.F
33!||--- uses -----------------------------------------------------
34!|| groupdef_mod ../common_source/modules/groupdef_mod.f
35!|| h3d_mod ../engine/share/modules/h3d_mod.F
36!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.F90
37!|| output_mod ../common_source/modules/output/output_mod.F90
38!|| sensor_mod ../common_source/modules/sensor_mod.F90
39!||====================================================================
40 SUBROUTINE intfop1(OUTPUT,
41 1 IPARI ,X ,A ,
42 2 ICODT ,FSAV ,WA ,V ,MS ,
43 3 DT2T ,NELTST ,ITYPTST ,ITAB ,STIFN,
44 4 NPC ,TF ,FSKYI ,ISKY ,VR ,
45 5 FCONT ,IN ,IGRSURF ,BUFSF ,FNCONT,
46 6 FTCONT,ICONTACT,RCONTACT,NUM_IMP,NS_IMP,
47 8 NE_IMP ,NT_IMP ,SENSOR_TAB,INTBUF_TAB,H3D_DATA,
48 9 NSENSOR)
49C-----------------------------------------------
50C M o d u l e s
51C-----------------------------------------------
52 USE output_mod, ONLY : output_
53 USE intbufdef_mod
54 USE h3d_mod
55 USE groupdef_mod
56 USE sensor_mod
57C-----------------------------------------------
58C I m p l i c i t T y p e s
59C-----------------------------------------------
60#include "implicit_f.inc"
61#include "comlock.inc"
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "com08_c.inc"
68#include "task_c.inc"
69#include "param_c.inc"
70#include "parit_c.inc"
71#include "impl1_c.inc"
72C-----------------------------------------------
73C D u m m y A r g u m e n t s
74C-----------------------------------------------
75 TYPE(output_), INTENT(INOUT) :: OUTPUT
76 INTEGER ,INTENT(IN) :: NSENSOR
77 INTEGER NELTST,ITYPTST
78 INTEGER NUM_IMP(*),NS_IMP(*),NE_IMP(*),NT_IMP
79 INTEGER IPARI(NPARI,*), ICODT(*),ITAB(*),
80 . NPC(*), ISKY(*),
81 . ICONTACT(*)
82C REAL
83 my_real dt2t,
84 . x(*), a(*), fsav(nthvki,*) , wa(*), v(*),ms(*),
85 . stifn(*), tf(*),fskyi(lsky,nfskyi),vr(3,*),fcont(3,*),in(*),
86 . bufsf(*), fncont(3,*),ftcont(3,*),rcontact(*)
87
88 TYPE(intbuf_struct_) INTBUF_TAB(*)
89 TYPE(H3D_DATABASE) :: H3D_DATA
90 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
91 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95 INTEGER N, IAD,IDUM, ISENS, NTY
96 my_real ts
97C-----------------------------------------------
98 IF (impl_s==1) iad = 1
99C
100 DO 200 n=1,ninter
101 nty =ipari(7,n)
102 IF(nty==14.OR.nty==15) i7kglo = 1
103 IF(ispmd/=0) GOTO 200
104 IF(nty==3.OR.nty==4.OR.nty==5
105 . .OR.nty==14.OR.nty==15)THEN
106#include "lockon.inc"
107 IF(ipari(16,n)==ncycle)THEN
108#include "lockoff.inc"
109 ELSE
110 ipari(16,n) = ncycle
111#include "lockoff.inc"
112C
113 isens = 0
114 IF(nty == 5 ) isens = ipari(64,n) ! INTERFACE SENSOR NUMBER
115
116 IF (isens > 0) THEN ! IF INTERFACE IS ACTIVATED BY SENSOR
117 ts = sensor_tab(isens)%TSTART
118 ELSE
119 ts = tt
120 ENDIF
121C
122 IF(n2d==0)THEN
123 IF (nty==14) THEN
124 CALL i14cmp(output,ipari(1,n),intbuf_tab(n),igrsurf ,bufsf ,
125 2 a ,x ,v ,wa ,fsav(1,n) ,
126 3 in ,stifn ,fcont ,ms ,fskyi ,
127 4 isky ,npc ,tf ,h3d_data)
128 ELSEIF (nty==15) THEN
129 CALL i15cmp(output,ipari(1,n),intbuf_tab(n),
130 2 igrsurf,bufsf,a, x, v,
131 3 wa, fsav(1,n),in, stifn, fcont,
132 4 ms, fskyi,isky, npc, tf,
133 5 dt2t, neltst,ityptst, itab,h3d_data)
134 ELSE
135 IF(impl_s/=1)THEN
136 IF(tt>=ts) THEN
137 CALL intvo3(
138 1 ipari(1,n) ,x,a ,
139 2 icodt ,fsav(1,n) ,wa ,v ,ms ,
140 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
141 4 icontact ,rcontact ,idum ,idum ,idum ,
142 5 stifn ,itab,intbuf_tab(n),h3d_data)
143 ENDIF
144 ELSE
145 num_imp(n) =0
146 IF(tt>=ts) THEN
147 CALL intvo3(
148 1 ipari(1,n) ,x ,a ,
149 2 icodt ,fsav(1,n) ,wa ,v ,ms ,
150 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
151 4 icontact ,rcontact,num_imp(n),ns_imp(iad),ne_imp(iad),
152 5 stifn ,itab,intbuf_tab(n),h3d_data)
153 ENDIF
154 iad=iad+num_imp(n)
155 END IF
156 END IF
157 ELSE
158 IF(tt>=ts) THEN
159 CALL intvo2(
160 1 ipari(1,n) ,intbuf_tab(n),x ,a ,
161 2 icodt ,fsav(1,n) ,fskyi ,isky ,
162 3 fcont ,fncont , ftcont ,h3d_data )
163 ENDIF
164 ENDIF
165 ENDIF
166 ELSEIF(nty==6)THEN
167#include "lockon.inc"
168 IF(ipari(16,n)==ncycle)THEN
169#include "lockoff.inc"
170 ELSE
171 ipari(16,n) = ncycle
172#include "lockoff.inc"
173 CALL i6main(
174 1 ipari(1,n),x ,a ,
175 2 icodt ,npc ,tf ,v ,fsav(1,n),
176 3 dt2t ,neltst ,ityptst ,fskyi ,isky ,
177 4 fcont ,ms ,intbuf_tab(n),h3d_data )
178 ENDIF
179 ELSEIF(nty==7.OR.nty==22)THEN
180 ELSEIF(nty==10)THEN
181 ELSEIF(nty==11)THEN
182 ENDIF
183 200 CONTINUE
184C
185#include "lockon.inc"
186
187 IF (impl_s==1) nt_imp=iad-1
188#include "lockoff.inc"
189
190C
191 RETURN
192 END
193C
#define my_real
Definition cppsort.cpp:32
subroutine i14cmp(output, ipari, intbuf_tab, igrsurf, bufsf, a, x, v, wa, fsav, in, stifn, fcont, ms, fskyi, isky, npc, pld, h3d_data)
Definition i14cmp.F:42
subroutine i15cmp(output, ipari, intbuf_tab, igrsurf, bufsf, a, x, v, wa, fsav, in, stifn, fcont, ms, fskyi, isky, npc, pld, dt2t, neltst, ityptst, itab, h3d_data)
Definition i15cmp.F:49
subroutine i6main(ipari, x, a, icodt, npc, tf, v, fsav, dt2t, neltst, ityptst, fskyi, isky, fcont, ms, intbuf_tab, h3d_data)
Definition i6main.F:48
subroutine intfop1(output, ipari, x, a, icodt, fsav, wa, v, ms, dt2t, neltst, ityptst, itab, stifn, npc, tf, fskyi, isky, vr, fcont, in, igrsurf, bufsf, fncont, ftcont, icontact, rcontact, num_imp, ns_imp, ne_imp, nt_imp, sensor_tab, intbuf_tab, h3d_data, nsensor)
Definition intfop1.F:49
subroutine intvo2(ipari, intbuf_tab, x, a, icodt, fsav, fskyi, isky, fcont, fncont, ftcont, h3d_data)
Definition intvo2.F:37
subroutine intvo3(ipari, x, a, icodt, fsav, mwa, v, ms, fskyi, isky, fcont, fncont, ftcont, icontact, rcontact, num_imp, ns_imp, ne_imp, stifn, itab, intbuf_tab, h3d_data)
Definition intvo3.F:48