OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i17crit.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "mvsiz_p.inc"
#include "com04_c.inc"
#include "task_c.inc"
#include "lockon.inc"
#include "lockoff.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i17crit (x, v, a, nelem, eminx, nme, itask, xsav, ixs, ixs16, ixs20, xmsr_g, size_t_g)

Function/Subroutine Documentation

◆ i17crit()

subroutine i17crit ( x,
v,
a,
integer, dimension(*) nelem,
eminx,
integer nme,
integer itask,
xsav,
integer, dimension(nixs,*) ixs,
integer, dimension(8,*) ixs16,
integer, dimension(12,*) ixs20,
xmsr_g,
size_t_g )

Definition at line 35 of file i17crit.F.

39 use element_mod , only : nixs
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44#include "comlock.inc"
45C-----------------------------------------------
46C G l o b a l P a r a m e t e r s
47C-----------------------------------------------
48#include "mvsiz_p.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com04_c.inc"
53#include "task_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER ITASK,NME,
58 . NELEM(*),IXS(NIXS,*),IXS16(8,*),IXS20(12,*)
60 . x(3,*),v(3,*),a(3,*),xsav(3,*),eminx(6,*),
61 . xmsr_g(6),size_t_g
62C-----------------------------------------------
63C L o c a l V a r i a b l e s
64C-----------------------------------------------
65 INTEGER NMEF,NMEL,I,I16,I20,LFT16,LLT16,
66 . LFT20,LLT20,INDEX16(MVSIZ),INDEX20(MVSIZ)
68 . xmsr(6), size_t
69C-----------------------------------------------
70C S o u r c e L i n e s
71C-----------------------------------------------
72 nmef = 1 + itask*nme / nthread
73 nmel = (itask+1)*nme / nthread
74C--------------------------------------------------------------
75C 0- criterion calculation to know if sorting is needed
76C--------------------------------------------------------------
77 xmsr(1) = -ep30
78 xmsr(2) = -ep30
79 xmsr(3) = -ep30
80 xmsr(4) = ep30
81 xmsr(5) = ep30
82 xmsr(6) = ep30
83 size_t = zero
84C------------------------------------
85C calculation of element bounds
86C------------------------------------
87 DO i=nmef,nmel
88 eminx(1,i) = ep30
89 eminx(2,i) = ep30
90 eminx(3,i) = ep30
91 eminx(4,i) = -ep30
92 eminx(5,i) = -ep30
93 eminx(6,i) = -ep30
94 ENDDO
95C
96 lft16=1
97 llt16=0
98 lft20=1
99 llt20=0
100 DO i=nmef,nmel
101 i20=nelem(i)-numels8-numels10
102 i16=i20-numels20
103 IF(i16>=1.AND.i16<=numels16)THEN
104 llt16=llt16+1
105 index16(llt16)=i
106 IF(llt16==mvsiz-1)THEN
107 CALL i16box(
108 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
109 2 x ,v ,a ,ixs ,ixs16,size_t,
110 3 xmsr ,index16,xsav )
111 llt16=0
112 ENDIF
113 ELSEIF(i20>=1.AND.i20<=numels20)THEN
114 llt20=llt20+1
115 index20(llt20)=i
116 IF(llt20==mvsiz-1)THEN
117 CALL i20box(
118 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
119 2 x ,v ,a ,ixs ,ixs20,size_t,
120 3 xmsr ,index20,xsav )
121 llt20=0
122 ENDIF
123 ENDIF
124 END DO
125 IF(llt16>0)CALL i16box(
126 1 lft16,llt16 ,nelem,eminx,nmef ,nmel ,
127 2 x ,v ,a ,ixs ,ixs16,size_t,
128 3 xmsr ,index16,xsav )
129 IF(llt20>0)CALL i20box(
130 1 lft20,llt20 ,nelem,eminx,nmef ,nmel ,
131 2 x ,v ,a ,ixs ,ixs20,size_t,
132 3 xmsr ,index20,xsav )
133C
134#include "lockon.inc"
135 xmsr_g(1)=max(xmsr_g(1),xmsr(1))
136 xmsr_g(2)=max(xmsr_g(2),xmsr(2))
137 xmsr_g(3)=max(xmsr_g(3),xmsr(3))
138 xmsr_g(4)=min(xmsr_g(4),xmsr(4))
139 xmsr_g(5)=min(xmsr_g(5),xmsr(5))
140 xmsr_g(6)=min(xmsr_g(6),xmsr(6))
141 size_t_g = size_t_g + size_t
142#include "lockoff.inc"
143C
144 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i16box(lft, llt, nelem, eminx, nmef, nmel, x, v, a, ixs, ixs16, size, xmsr, index, xsav)
Definition i16crit.F:230
subroutine i20box(lft, llt, nelem, eminx, nmef, nmel, x, v, a, ixs, ixs20, size, xmsr, index, xsav)
Definition i16crit.F:538
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21