OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
schkjab3.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| schkjab3 ../engine/source/elements/solid/solide/schkjab3.F
25!||--- called by ------------------------------------------------------
26!|| fderi3 ../engine/source/elements/solid/solide/fderi3.F
27!|| s4derit3 ../engine/source/elements/solid/solide4/s4derit3.F
28!|| s8ederict3 ../engine/source/elements/solid/solide8e/s8ederict3.F
29!|| s8zderict3 ../engine/source/elements/solid/solide8z/s8zderict3.F
30!|| sderit3 ../engine/source/elements/solid/solide/sderit3.F
31!|| szderit3 ../engine/source/elements/solid/solidez/szderi3.F
32!||--- calls -----------------------------------------------------
33!|| ancmsg ../engine/source/output/message/message.F
34!||--- uses -----------------------------------------------------
35!|| message_mod ../engine/share/message_module/message_mod.F
36!||====================================================================
37 SUBROUTINE schkjab3(
38 1 OFF, DET, NGL, NEL)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE message_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47#include "comlock.inc"
48C-----------------------------------------------
49C C o m m o n B l o c k s
50C-----------------------------------------------
51#include "com06_c.inc"
52#include "units_c.inc"
53#include "scr07_c.inc"
54#include "scr17_c.inc"
55#include "scr18_c.inc"
56#include "impl1_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER, INTENT(IN) :: NEL
61 INTEGER :: NGL(*)
62 my_real :: off(*),det(*)
63C-----------------------------------------------
64C L o c a l V a r i a b l e s
65C-----------------------------------------------
66 INTEGER :: I,J,ICOR
67C-----------------------------------------------
68 IF(idtmin(1)==1)THEN
69 icor = 0
70 DO i=1,nel
71 IF(off(i) ==zero)THEN
72 det(i)=1.
73 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero))THEN
74 icor = 1
75 ENDIF
76 ENDDO
77 IF (icor>0.AND.imconv==1) THEN
78 DO i=1,nel
79 IF(off(i)/=zero)THEN
80 IF(det(i)<=volmin)THEN
81 det(i)=one
82 off(i)=zero
83#include "lockon.inc"
84 WRITE(istdo,2000) ngl(i)
85 WRITE(iout ,2000) ngl(i)
86#include "lockoff.inc"
87 idel7nok = 1
88 ELSEIF(det(i)<=zero)THEN
89 CALL ancmsg(msgid=166,anmode=aninfo,i1=ngl(i))
90 det(i)= one
91 mstop = 1
92 ENDIF
93 ENDIF
94 ENDDO
95 ENDIF
96 ELSEIF(idtmin(1)==2)THEN
97 icor = 0
98 DO i=1,nel
99 IF(off(i) ==zero)THEN
100 det(i)=one
101 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero))THEN
102 icor=1
103 ENDIF
104 ENDDO
105 IF (icor>0.AND.imconv==1) THEN
106 DO i=1,nel
107 IF((off(i)/=zero).AND.
108 . (det(i)<=volmin.OR.det(i)<=zero))THEN
109 det(i)=one
110 off(i)=zero
111#include "lockon.inc"
112 WRITE(istdo,2000) ngl(i)
113 WRITE(iout ,2000) ngl(i)
114#include "lockoff.inc"
115 idel7nok = 1
116 ENDIF
117 ENDDO
118 ENDIF
119 ELSE
120 icor = 0
121 DO i=1,nel
122 IF(off(i) ==zero)THEN
123 det(i)=one
124 ELSEIF(det(i)<=zero)THEN
125 icor=1
126 ENDIF
127 ENDDO
128 IF (icor>0.AND.imconv==1) THEN
129 DO i=1,nel
130 IF(off(i)/=zero)THEN
131 IF(det(i)<=zero)THEN
132 CALL ancmsg(msgid=166,anmode=aninfo,i1=ngl(i))
133 det(i)= one
134 mstop = 1
135 ENDIF
136 ENDIF
137 ENDDO
138 ENDIF
139 ENDIF
140 RETURN
141C
142 1000 FORMAT(/' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB',i10/)
143 2000 FORMAT(/' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
144 END
#define my_real
Definition cppsort.cpp:32
subroutine schkjab3(off, det, ngl, nel)
Definition schkjab3.F:39
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889