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 33 of file i17crit.F.

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