OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i23cor3t.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!|| i23cor3t ../starter/source/interfaces/inter3d1/i23cor3t.F
25!||--- called by ------------------------------------------------------
26!|| i23buc1 ../starter/source/interfaces/inter3d1/i23buc3.f
27!|| i23tri ../starter/source/interfaces/inter3d1/i23tri.F
28!||====================================================================
29 SUBROUTINE i23cor3t(X ,IRECT ,NSV ,CAND_E ,CAND_N ,
30 2 GAPV ,IGAP ,GAP ,GAP_S ,GAPMIN ,
31 3 GAPMAX,MSR ,GAP_M ,IX1 ,IX2 ,
32 4 IX3 ,IX4 ,NSVG ,X1 ,X2 ,
33 5 X3 ,X4 ,Y1 ,Y2 ,Y3 ,
34 6 Y4 ,Z1 ,Z2 ,Z3 ,Z4 ,
35 7 XI ,YI ,ZI )
36C-----------------------------------------------
37C I m p l i c i t T y p e s
38C-----------------------------------------------
39#include "implicit_f.inc"
40C-----------------------------------------------
41C G l o b a l P a r a m e t e r s
42C-----------------------------------------------
43#include "mvsiz_p.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER IGAP, IRECT(4,*), NSV(*), CAND_E(*), CAND_N(*), MSR(*)
48C REAL
49 my_real
50 . GAP, GAPMIN, GAPMAX,
51 . X(3,*), GAPV(*), GAP_S(*), GAP_M(*)
52 INTEGER, DIMENSION(MVSIZ), INTENT(INOUT) :: IX1,IX2,IX3,IX4,NSVG
53 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: x1,x2,x3,x4
54 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: y1,y2,y3,y4
55 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: z1,z2,z3,z4
56 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: xi,yi,zi
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "vect07_c.inc"
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER I, IL, L, NN, IG
65C-----------------------------------------------
66 IF(IGAP==0)then
67 DO i=lft,llt
68 gapv(i)=gap
69 END DO
70 ELSE
71 DO i=lft,llt
72 gapv(i)=gap_s(cand_n(i))+gap_m(cand_e(i))
73 gapv(i)=min(gapv(i),gapmax)
74 gapv(i)=max(gapmin,gapv(i))
75 END DO
76 END IF
77C
78 DO i=lft,llt
79 gapv(i)=sqrt(three)*gapv(i)
80 END DO
81C
82 DO i=lft,llt
83 ig = nsv(cand_n(i))
84 nsvg(i) = ig
85 xi(i) = x(1,ig)
86 yi(i) = x(2,ig)
87 zi(i) = x(3,ig)
88 ENDDO
89C
90 DO i=lft,llt
91C
92 l = cand_e(i)
93C
94 ix1(i)=irect(1,l)
95 ix2(i)=irect(2,l)
96 ix3(i)=irect(3,l)
97 ix4(i)=irect(4,l)
98C
99 ENDDO
100C
101 DO i=lft,llt
102C
103 nn=ix1(i)
104 x1(i)=x(1,nn)
105 y1(i)=x(2,nn)
106 z1(i)=x(3,nn)
107C
108 nn=ix2(i)
109 x2(i)=x(1,nn)
110 y2(i)=x(2,nn)
111 z2(i)=x(3,nn)
112C
113 nn=ix3(i)
114 x3(i)=x(1,nn)
115 y3(i)=x(2,nn)
116 z3(i)=x(3,nn)
117C
118 nn=ix4(i)
119 x4(i)=x(1,nn)
120 y4(i)=x(2,nn)
121 z4(i)=x(3,nn)
122C
123 ENDDO
124C
125 RETURN
126 END
subroutine i23buc1(x, irect, nsv, bumult, nseg, nmn, nrtm, mwa, nsn, cand_e, cand_n, gap, xyzm, noint, i_stok, dist, tzinf, maxbox, minbox, msr, stf, multimp, itab, gap_s, igap, gapmin, gapmax, inacti, nrts, irects, i_mem, iddlevel, id, titr, gap_m, prov_n, prov_e, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, n11, n21, n31, pene)
Definition i23buc3.F:56
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine i23cor3t(x, irect, nsv, cand_e, cand_n, gapv, igap, gap, gap_s, gapmin, gapmax, msr, gap_m, ix1, ix2, ix3, ix4, nsvg, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi)
Definition i23cor3t.F:36
program starter
Definition starter.F:39