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 (output, 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 ( type(output_), intent(inout) output,
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 37 of file intfop8.F.

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