OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i24pxfem.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i24pxfem (ipari, intbuf_tab, wagap, iad_elem, fr_elem)
subroutine i24gap (nrtm, irect, wagap, gap_mn, gap_m, msegtyp, gapmax, nvoisin, dgap_mn, dgap_m, dgapmax, stfm)

Function/Subroutine Documentation

◆ i24gap()

subroutine i24gap ( integer nrtm,
integer, dimension(4,*) irect,
wagap,
gap_mn,
gap_m,
integer, dimension(*) msegtyp,
gapmax,
integer, dimension(8,*) nvoisin,
dgap_mn,
dgap_m,
dgapmax,
stfm )

Definition at line 104 of file i24pxfem.F.

107C-----------------------------------------------
108C I m p l i c i t T y p e s
109C-----------------------------------------------
110#include "implicit_f.inc"
111#include "comlock.inc"
112C-----------------------------------------------
113C D u m m y A r g u m e n t s
114C-----------------------------------------------
115 INTEGER NRTM, IRECT(4,*),MSEGTYP(*), NVOISIN(8,*)
116 my_real
117 . xmax, ymax, zmax, xmin, ymin, zmin, c_max,
118 . gap_mn(12,*),wagap(2,*),gap_m(*),gapmax,dgap_mn(4,*),
119 . dgap_m(*),dgapmax,stfm(*)
120C-----------------------------------------------
121C L o c a l V a r i a b l e s
122C-----------------------------------------------
123 INTEGER II,M1,M2,M3,M4,NE,L
124 my_real
125 . gapn_old(4),gap_mmax
126C-----------------------------------------------
127C S o u r c e L i n e s
128C-----------------------------------------------
129C
130C
131 DO ne=1,nrtm
132 IF(stfm(ne) == zero) cycle
133 gap_mmax = zero
134 m1 = irect(1,ne)
135 m2 = irect(2,ne)
136 m3 = irect(3,ne)
137 m4 = irect(4,ne)
138C
139 gapn_old(1) = gap_mn(1,ne)
140 gapn_old(2) = gap_mn(2,ne)
141 gapn_old(3) = gap_mn(3,ne)
142 gapn_old(4) = gap_mn(4,ne)
143C
144 IF(msegtyp(ne) > 0 ) THEN
145C
146 gap_mn(1,ne) =max(gap_mn(1,ne), wagap(1,m1))
147 gap_mmax = max(gap_mmax,gap_mn(1,ne))
148 gap_mn(2,ne) = max(gap_mn(2,ne), wagap(1,m2))
149 gap_mmax = max(gap_mmax,gap_mn(2,ne))
150 gap_mn(3,ne) = max(gap_mn(3,ne), wagap(1,m3))
151 gap_mmax = max(gap_mmax,gap_mn(3,ne))
152 gap_mn(4,ne) = max(gap_mn(4,ne), wagap(1,m4))
153 gap_mmax = max(gap_mmax,gap_mn(4,ne))
154! voisin
155 l = iabs(nvoisin(1,ne))
156 IF(l > 0) gap_mn(5,ne) =max(gap_mn(5,ne), wagap(1,l))
157 l = iabs(nvoisin(2,ne))
158 IF(l > 0) gap_mn(6,ne) =max(gap_mn(6,ne), wagap(1,l))
159 l = iabs(nvoisin(3,ne))
160 IF(l > 0) gap_mn(7,ne) =max(gap_mn(7,ne), wagap(1,l))
161 l = iabs(nvoisin(4,ne))
162 IF(l > 0) gap_mn(8,ne) =max(gap_mn(8,ne), wagap(1,l))
163 l = iabs(nvoisin(5,ne))
164 IF(l > 0) gap_mn(9,ne) =max(gap_mn(9,ne), wagap(1,l))
165 l = iabs(nvoisin(6,ne))
166 IF(l > 0) gap_mn(10,ne) =max(gap_mn(10,ne), wagap(1,l))
167 l = iabs(nvoisin(7,ne))
168 IF(l > 0) gap_mn(11,ne) =max(gap_mn(11,ne), wagap(1,l))
169 l = iabs(nvoisin(8,ne))
170 IF(l > 0) gap_mn(12,ne) =max(gap_mn(12,ne), wagap(1,l))
171 ELSEIF(msegtyp(ne) < 0) THEN
172 gap_mn(1,ne) =max(gap_mn(1,ne), wagap(2,m1))
173 gap_mmax = max(gap_mmax,gap_mn(1,ne))
174 gap_mn(2,ne) = max(gap_mn(2,ne), wagap(2,m2))
175 gap_mmax = max(gap_mmax,gap_mn(2,ne))
176 gap_mn(3,ne) = max(gap_mn(3,ne), wagap(2,m3))
177 gap_mmax = max(gap_mmax,gap_mn(3,ne))
178 gap_mn(4,ne) = max(gap_mn(4,ne), wagap(2,m4))
179 gap_mmax = max(gap_mmax,gap_mn(4,ne))
180C
181 l = iabs(nvoisin(1,ne))
182 IF(l > 0) gap_mn(5,ne) =max(gap_mn(5,ne), wagap(2,l))
183 l = iabs(nvoisin(2,ne))
184 IF(l > 0) gap_mn(6,ne) =max(gap_mn(6,ne), wagap(2,l))
185 l = iabs(nvoisin(3,ne))
186 IF(l > 0) gap_mn(7,ne) =max(gap_mn(7,ne), wagap(2,l))
187 l = iabs(nvoisin(4,ne))
188 IF(l > 0) gap_mn(8,ne) =max(gap_mn(8,ne), wagap(2,l))
189 l = iabs(nvoisin(5,ne))
190 IF(l > 0) gap_mn(9,ne) =max(gap_mn(9,ne), wagap(2,l))
191 l = iabs(nvoisin(6,ne))
192 IF(l > 0) gap_mn(10,ne) =max(gap_mn(10,ne), wagap(2,l))
193 l = iabs(nvoisin(7,ne))
194 IF(l > 0) gap_mn(11,ne) =max(gap_mn(11,ne), wagap(2,l))
195 l = iabs(nvoisin(8,ne))
196 IF(l > 0) gap_mn(12,ne) =max(gap_mn(12,ne), wagap(2,l))
197 ENDIF
198 gap_m(ne) = gap_mmax
199 gapmax = max(gapmax,gap_mmax)
200 dgap_mn(1,ne)= gap_mn(1,ne) - gapn_old(1)
201 dgap_mn(2,ne)= gap_mn(2,ne) - gapn_old(2)
202 dgap_mn(3,ne)= gap_mn(3,ne) - gapn_old(3)
203 dgap_mn(4,ne)= gap_mn(4,ne) - gapn_old(4)
204 dgap_m(ne) = max(dgap_mn(1,ne), dgap_mn(2,ne),
205 . dgap_mn(3,ne), dgap_mn(4,ne))
206#include "lockon.inc"
207 dgapmax = max(dgapmax, dgap_m(ne))
208#include "lockoff.inc"
209 ENDDO
210C
211 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
Definition law100_upd.F:272
#define max(a, b)
Definition macros.h:21

◆ i24pxfem()

subroutine i24pxfem ( integer, dimension(npari,*) ipari,
type(intbuf_struct_), dimension(*) intbuf_tab,
wagap,
integer, dimension(2,*) iad_elem,
integer, dimension(*) fr_elem )

Definition at line 33 of file i24pxfem.F.

35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE intbufdef_mod
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43#include "comlock.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "com01_c.inc"
48#include "com04_c.inc"
49#include "param_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53 INTEGER IPARI(NPARI,*), IAD_ELEM(2,*),FR_ELEM(*)
54C REAL
56 . wagap(*)
57
58 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
59C-----------------------------------------------
60C L o c a l V a r i a b l e s
61C-----------------------------------------------
62 INTEGER SIZE,LENR ,ITY,NG,NRTM,INTPLY
64 . gapmax,dgapmax
65C=======================================================================
66
67C------------------------------------------------------------
68 IF (nspmd > 1 ) THEN
69C---
70 SIZE = 2
71 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
72 CALL spmd_exch_i24_gap( wagap,iad_elem,fr_elem,SIZE ,lenr )
73 ENDIF
74C------------------------------------------------------------
75 DO ng=1,ninter
76 gapmax = zero
77 dgapmax = zero
78 ity = ipari(7,ng)
79 intply = ipari(66,ng)
80 IF(ity == 24 .AND. intply > 0) THEN
81 nrtm =ipari(4,ng)
82 CALL i24gap(
83 1 nrtm ,intbuf_tab(ng)%IRECTM,wagap, intbuf_tab(ng)%GAP_NM,
84 . intbuf_tab(ng)%GAP_M,
85 2 intbuf_tab(ng)%MSEGTYP24,gapmax,intbuf_tab(ng)%NVOISIN,
86 . intbuf_tab(ng)%DGAP_NM,
87 3 intbuf_tab(ng)%DGAP_M,dgapmax,intbuf_tab(ng)%STFM)
88#include "lockon.inc"
89 intbuf_tab(ng)%VARIABLES(16) =
90 . max(gapmax,intbuf_tab(ng)%VARIABLES(16))
91 intbuf_tab(ng)%DELTA_PMAX_DGAP(1) = dgapmax
92#include "lockoff.inc"
93 END IF
94 END DO
95C
96 RETURN
subroutine i24gap(nrtm, irect, wagap, gap_mn, gap_m, msegtyp, gapmax, nvoisin, dgap_mn, dgap_m, dgapmax, stfm)
Definition i24pxfem.F:107
subroutine spmd_exch_i24_gap(wa, iad_elem, fr_elem, size, lenr)