OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
schkjabt3.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!|| schkjabt3 ../engine/source/elements/solid/solide4/schkjabt3.F
25!||--- called by ------------------------------------------------------
26!|| s4deri3 ../engine/source/elements/solid/solide4/s4deri3.F
27!|| s8ederic3 ../engine/source/elements/solid/solide8e/s8ederic3.F
28!|| s8zderic3 ../engine/source/elements/solid/solide8z/s8zderic3.F
29!|| sderi3 ../engine/source/elements/solid/solide/sderi3.F
30!|| szderi3 ../engine/source/elements/solid/solidez/szderi3.F
31!||--- calls -----------------------------------------------------
32!|| ancmsg ../engine/source/output/message/message.F
33!||--- uses -----------------------------------------------------
34!|| message_mod ../engine/share/message_module/message_mod.F
35!||====================================================================
36 SUBROUTINE schkjabt3(
37 1 OFF, DET, NGL, OFFG,
38 2 NNEGA, INDEX, NEL, ISMSTR,
39 3 JLAG)
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE message_mod
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48#include "comlock.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52#include "com06_c.inc"
53#include "units_c.inc"
54#include "scr07_c.inc"
55#include "scr17_c.inc"
56#include "scr18_c.inc"
57#include "impl1_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER, INTENT(IN) :: NEL
62 INTEGER, INTENT(IN) :: ISMSTR
63 INTEGER, INTENT(IN) :: JLAG
64 INTEGER NGL(*),NNEGA,INDEX(*)
65C REAL
67 . off(*),det(*),offg(*)
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER I,J ,ICOR
72C-----------------------------------------------
73 NNEGA = 0
74 IF(jlag/=0)THEN
75C--- case total strain switched to small due to nega_v before
76 IF(ismstr==10.OR.(ismstr==12.AND.idtmin(1)/=3)) THEN
77 DO i=1,nel
78 IF(offg(i) > one)THEN
79 nnega=nnega+1
80 index(nnega)=i
81 END IF
82 ENDDO
83 END IF
84 icor = 0
85 DO i=1,nel
86 IF(off(i) ==zero)THEN
87 det(i)=one
88 ELSEIF(offg(i) > one)THEN
89C
90 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero))THEN
91 icor = 1
92 ENDIF
93 ENDDO
94 IF (icor>0.AND.inconv==1) THEN
95 DO i=1,nel
96 IF(det(i)<=zero.AND.offg(i) <= one.AND.offg(i) /= zero)THEN
97 nnega=nnega+1
98 index(nnega)=i
99#include "lockon.inc"
100 IF(ismstr<10) THEN
101 CALL ancmsg(msgid=259,anmode=aninfo,
102 . i1=ngl(i))
103 ELSE
104 CALL ancmsg(msgid=261,anmode=aninfo,
105 . i1=ngl(i))
106 END IF
107#include "lockoff.inc"
108 ENDIF
109 IF (ineg_v==0) THEN
110 CALL ancmsg(msgid=280,anmode=aninfo)
111 mstop = 1
112 ENDIF
113 ENDDO
114 END IF !(ICOR>0.AND.IMCONV==1) THEN
115 ELSE
116 IF(idtmin(1)==1)THEN
117 icor = 0
118 DO i=1,nel
119 IF(off(i) ==zero)THEN
120 det(i)=1.
121 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero))THEN
122 icor = 1
123 ENDIF
124 ENDDO
125 IF (icor>0.AND.imconv==1) THEN
126 DO i=1,nel
127 IF(off(i)/=zero)THEN
128 IF(det(i)<=volmin)THEN
129 det(i)=one
130 off(i)=zero
131#include "lockon.inc"
132 WRITE(istdo,2000) ngl(i)
133 WRITE(iout ,2000) ngl(i)
134#include "lockoff.inc"
135 idel7nok = 1
136 ELSEIF(det(i)<=zero)THEN
137 CALL ancmsg(msgid=166,anmode=aninfo,
138 . i1=ngl(i))
139 mstop = 1
140 ENDIF
141 ENDIF
142 ENDDO
143 ENDIF
144 ELSEIF(idtmin(1)==2)THEN
145 icor = 0
146 DO i=1,nel
147 IF(off(i) ==zero)THEN
148 det(i)=one
149 ELSEIF((det(i)<=volmin).OR.(det(i)<=zero))THEN
150 icor=1
151 ENDIF
152 ENDDO
153 IF (icor>0.AND.imconv==1) THEN
154 DO i=1,nel
155 IF((off(i)/=zero).AND.
156 . (det(i)<=volmin.OR.det(i)<=zero))THEN
157 det(i)=one
158 off(i)=zero
159#include "lockon.inc"
160 WRITE(istdo,2000) ngl(i)
161 WRITE(iout ,2000) ngl(i)
162#include "lockoff.inc"
163 idel7nok = 1
164 ENDIF
165 ENDDO
166 ENDIF
167 ELSE
168 icor = 0
169 DO i=1,nel
170 IF(off(i) ==zero)THEN
171 det(i)=one
172 ELSEIF(det(i)<=zero)THEN
173 icor=1
174 ENDIF
175 ENDDO
176 IF (icor>0.AND.imconv==1) THEN
177 DO i=1,nel
178 IF(off(i)/=zero)THEN
179 IF(det(i)<=zero)THEN
180 CALL ancmsg(msgid=166,anmode=aninfo,
181 . i1=ngl(i))
182 mstop = 1
183 ENDIF
184 ENDIF
185 ENDDO
186 ENDIF
187 ENDIF
188 END if!(JLAG/=0)THEN
189 RETURN
190C
191 1000 FORMAT(/' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB',i10/)
192 2000 FORMAT(/' ZERO OR NEGATIVE VOLUME : DELETE 3D-ELEMENT NB',i10/)
193 3000 FORMAT(/' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB:',i10/,
194 + ' ELEMENT IS SWITCHED TO SMALL STRAIN OPTION'/)
195 4000 FORMAT(/' ZERO OR NEGATIVE VOLUME : 3D-ELEMENT NB:',i10/,
196 + ' TOTAL STRAIN ELEMENT IS SWITCHED TO SMALL STRAIN OPTION'/)
197 END
#define my_real
Definition cppsort.cpp:32
if(complex_arithmetic) id
subroutine schkjabt3(off, det, ngl, offg, nnega, index, nel, ismstr, jlag)
Definition schkjabt3.F:40
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