OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
q4voli2.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!|| q4voli2 ../starter/source/elements/solid_2d/quad4/q4voli2.f
25!||--- called by ------------------------------------------------------
26!|| q4init2 ../starter/source/elements/solid_2d/quad4/q4init2.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!||--- uses -----------------------------------------------------
30!|| message_mod ../starter/share/message_module/message_mod.F
31!||====================================================================
32 SUBROUTINE q4voli2(VOLU,IXQ,
33 . NGL, AIRE,
34 . Y1, Y2, Y3, Y4,
35 . Z1, Z2, Z3, Z4,Y234,Y124)
36 USE message_mod
37 use element_mod , only : nixq
38C
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "vect01_c.inc"
52C-----------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER IXQ(NIXQ,*), NGL(*)
56 my_real
57 . VOLU(*), AIRE(*),
58 . y1(*), y2(*), y3(*), y4(*),
59 . z1(*), z2(*), z3(*), z4(*),y234(*),y124(*)
60C-----------------------------------------------
61C L o c a l V a r i a b l e s
62C-----------------------------------------------
63 INTEGER I
64 my_real
65 . A1(MVSIZ), A2(MVSIZ)
66C----------------------------------------------------------------------
67 DO i=lft,llt
68 a1(i) =y2(i)*(z3(i)-z4(i))+
69 . y3(i)*(z4(i)-z2(i))+y4(i)*(z2(i)-z3(i))
70 a2(i) =y2(i)*(z4(i)-z1(i))+
71 . y4(i)*(z1(i)-z2(i))+y1(i)*(z2(i)-z4(i))
72 aire(i)=(a1(i)+a2(i))* half
73 IF (aire(i)==zero) THEN
74 CALL ancmsg(msgid=227,
75 . msgtype=msgerror,
76 . anmode=aninfo_blind_1,
77 . i1=ixq(nixq,i))
78 ELSEIF(aire(i)<zero.AND.n2d==1) THEN
79 CALL ancmsg(msgid=1228,
80 . msgtype=msgerror,
81 . anmode=aninfo_blind_1,
82 . i1=ngl(i),
83 . prmod=msg_cumu)
84 aire(i) = -aire(i)
85 ENDIF
86 END DO
87
88 IF(n2d==1) THEN
89 IF(jcvt==0)THEN
90 DO i=lft,llt
91 volu(i)=((y2(i)+y3(i)+y4(i))*a1(i)
92 . +(y1(i)+y2(i)+y4(i))*a2(i))*one_over_6
93 END DO
94 ELSE
95 DO i=lft,llt
96 volu(i)=(y234(i)*a1(i)+y124(i)*a2(i))*one_over_6
97 END DO
98 END IF
99 ELSE
100 DO i=lft,llt
101 volu(i)=aire(i)
102 END DO
103 ENDIF
104
105 DO i=lft,llt
106 IF(volu(i)<=0.0)THEN
107 CALL ancmsg(msgid=228,
108 . msgtype=msgerror,
109 . anmode=aninfo,
110 . i1=ngl(i))
111 EXIT
112 END IF
113 END DO
114
115 RETURN
116
117 END
subroutine q4voli2(volu, ixq, ngl, aire, y1, y2, y3, y4, z1, z2, z3, z4, y234, y124)
Definition q4voli2.F:36
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:895
program starter
Definition starter.F:39