OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
intfop8.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "param_c.inc"
#include "parit_c.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine intfop8 (ipari, x, a, icodt, fsav, wa, v, ms, dt2t, neltst, ityptst, itab, stifn, npc, tf, fskyi, isky, vr, fcont, in, bufsf, fncont, nsensor, ftcont, icontact, rcontact, num_imp, ns_imp, ne_imp, nt_imp, sensor_tab, intbuf_tab, h3d_data, pskids, tagncont, kloadpinter, loadpinter, loadp_hyd_inter)

Function/Subroutine Documentation

◆ intfop8()

subroutine intfop8 ( integer, dimension(npari,*) ipari,
x,
a,
integer, dimension(*) icodt,
fsav,
wa,
v,
ms,
dt2t,
integer neltst,
integer ityptst,
integer, dimension(*) itab,
stifn,
integer, dimension(*) npc,
tf,
fskyi,
integer, dimension(*) isky,
vr,
fcont,
in,
bufsf,
fncont,
integer, intent(in) nsensor,
ftcont,
integer, dimension(*) icontact,
rcontact,
integer, dimension(*) num_imp,
integer, dimension(*) ns_imp,
integer, dimension(*) ne_imp,
integer nt_imp,
type (sensor_str_), dimension(nsensor) sensor_tab,
type(intbuf_struct_), dimension(*) intbuf_tab,
type(h3d_database) h3d_data,
pskids,
integer, dimension(nloadp_hyd_inter,numnod) tagncont,
integer, dimension(ninter+1) kloadpinter,
integer, dimension(ninter*nloadp_hyd) loadpinter,
integer, dimension(nloadp_hyd) loadp_hyd_inter )

Definition at line 36 of file intfop8.F.

46C-----------------------------------------------
47C M o d u l e s
48C-----------------------------------------------
49 USE intbufdef_mod
50 USE int8_mod
51 USE h3d_mod
52 USE sensor_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57#include "comlock.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "com01_c.inc"
62#include "com04_c.inc"
63#include "com08_c.inc"
64#include "param_c.inc"
65#include "parit_c.inc"
66#include "impl1_c.inc"
67C-----------------------------------------------
68C D u m m y A r g u m e n t s
69C-----------------------------------------------
70 INTEGER ,INTENT(IN) :: NSENSOR
71 INTEGER NELTST,ITYPTST
72 INTEGER NUM_IMP(*),NS_IMP(*),NE_IMP(*),NT_IMP
73 INTEGER IPARI(NPARI,*), ICODT(*),ITAB(*),
74 . NPC(*), ISKY(*),
75 . ICONTACT(*),TAGNCONT(NLOADP_HYD_INTER,NUMNOD),
76 . KLOADPINTER(NINTER+1),LOADPINTER(NINTER*NLOADP_HYD),
77 . LOADP_HYD_INTER(NLOADP_HYD)
78
79C REAL
80 my_real dt2t,
81 . x(*), a(*), fsav(nthvki,*) , wa(*), v(*),ms(*),
82 . stifn(*), tf(*),fskyi(lsky,nfskyi),vr(3,*),fcont(3,*),in(*),
83 . bufsf(*), fncont(3,*),ftcont(3,*),rcontact(*),pskids(*)
84
85 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
86 TYPE(H3D_DATABASE) :: H3D_DATA
87 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
88
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 INTEGER N, IAD,IDUM, ISENS,I
93 my_real ts,startt,stopt
94 INTEGER NSLV,SIZ,NBT8
95 my_real, DIMENSION(:,:), ALLOCATABLE :: ftsav_buf
96 INTEGER :: NTY
97C-----------------------------------------------
98 !CALL STARTIME(TIMERS,96)
99 nbt8 = 0
100
101
102 IF (impl_s==1) iad = 1
103C
104 DO 200 n=1,ninter
105 nty =ipari(7,n)
106 ! used to identify the communication
107 ! Will be replace by MPI_Request with
108 ! MPI 3.0 support
109c IF(ISPMD/=0) GOTO 200 !TO REMOVE
110 IF(nty==8) THEN
111 nbt8 = nbt8 + 1
112 IF(ipari(16,n)==ncycle)THEN
113 ELSE
114 ipari(16,n) = ncycle
115C
116 isens = 0 ! ???
117
118 IF (isens > 0) THEN ! IF INTERFACE IS ACTIVATED BY SENSOR
119 ts = sensor_tab(isens)%TSTART
120 ELSE
121 ts = tt
122 ENDIF
123C
124 IF(n2d==0)THEN
125 IF(impl_s/=1)THEN
126 IF(tt>=ts) THEN
127 CALL intvo8(
128 1 ipari(1,n) ,x,a ,
129 2 icodt ,fsav(1,n) ,v ,ms ,
130 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
131 4 icontact ,rcontact,
132 5 stifn ,itab,intbuf_tab(n),intbuf_tab(n)%T8,h3d_data,
133 6 n ,pskids ,tagncont,kloadpinter,loadpinter,
134 7 loadp_hyd_inter)
135 ENDIF
136 ELSE
137 num_imp(n) =0
138 IF(tt>=ts) THEN
139 CALL intvo8(
140 1 ipari(1,n) ,x ,a ,
141 2 icodt ,fsav(1,n) ,v ,ms ,
142 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
143 4 icontact ,rcontact,
144 5 stifn ,itab,intbuf_tab(n),intbuf_tab(n)%T8,h3d_data,
145 6 n ,pskids ,tagncont,kloadpinter,loadpinter,
146 7 loadp_hyd_inter)
147 ENDIF
148 iad=iad+num_imp(n)
149 END IF
150 ELSE
151
152 ENDIF !N2D
153 ENDIF !ipari(16)
154 ENDIF !NTY==8
155 200 CONTINUE
156C
157
158 IF(nspmd > 1) THEN
159 nbt8 = 0
160 DO n=1,ninter
161 nty =ipari(7,n)
162c IF(ISPMD/=0) GOTO 200 !TO REMOVE
163 IF(nty==8) THEN
164 nbt8 = nbt8+1
165 startt=intbuf_tab(n)%VARIABLES(3)
166 stopt=intbuf_tab(n)%VARIABLES(11)
167 IF(startt<=tt .AND. tt<= stopt) THEN
168 IF(ipari(48,n) == 2) THEN
169 nslv = ipari(5,n)
170 ALLOCATE(ftsav_buf(3,nslv))
171 ftsav_buf(1:3,1:nslv) = 0
172 DO i = 1, nslv
173 ftsav_buf(1,i) = intbuf_tab(n)%FTSAVX(i)
174 ftsav_buf(2,i) = intbuf_tab(n)%FTSAVY(i)
175 ftsav_buf(3,i) = intbuf_tab(n)%FTSAVZ(i)
176 ENDDO
177 siz = 3*nslv
178 CALL spmd_i8_reduce(ftsav_buf,siz,nbt8)
179 DO i = 1, nslv
180 intbuf_tab(n)%FTSAVX(i) = ftsav_buf(1,i)
181 intbuf_tab(n)%FTSAVY(i) = ftsav_buf(2,i)
182 intbuf_tab(n)%FTSAVZ(i) = ftsav_buf(3,i)
183 ENDDO
184 DEALLOCATE(ftsav_buf)
185 ENDIF
186 ENDIF
187 ENDIF
188 ENDDO
189 ENDIF
190
191 IF (impl_s==1) nt_imp=iad-1
192 !CALL STOPTIME(TIMERS,96)
193
194C
195 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine intvo8(ipari, x, a, icodt, fsav, v, ms, fskyi, isky, fcont, fncont, ftcont, icontact, rcontact, stifn, itab, intbuf_tab, t8, h3d_data, nin, pskids, tagncont, kloadpinter, loadpinter, loadp_hyd_inter)
Definition intvo8.F:52
subroutine spmd_i8_reduce(tab, n, num)