OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i10sto.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!|| i10sto ../engine/source/interfaces/intsort/i10sto.F
25!||--- called by ------------------------------------------------------
26!|| i10tri ../engine/source/interfaces/intsort/i10tri.F
27!||--- calls -----------------------------------------------------
28!|| i7cor3t ../engine/source/interfaces/int07/i7cor3t.F
29!|| i7pen3 ../engine/source/interfaces/intsort/i7pen3.F
30!||====================================================================
31 SUBROUTINE i10sto(
32 1 J_STOK,IRECT ,X ,NSV ,II_STOK,
33 2 CAND_N,CAND_E,NSN4 ,NOINT ,MARGE ,
34 3 I_MEM ,PROV_N,PROV_E ,CAND_A,ESHIFT ,
35 4 NSN ,OLDNUM,NSNROLD,IGAP ,GAP ,
36 6 GAP_S ,GAP_M ,GAPMIN ,GAPMAX,NIN )
37C============================================================================
38C cette routine est appelee par : I10TRI(/int10/i10tri.F)
39C----------------------------------------------------------------------------
40C cette routine appelle : I7COR3T(/int7/i7cor3.F)
41C I7PEN3(/int7/i7pen3.F)
42C MY_LOCK(/spe/machine.F)
43C MY_FREE
44C============================================================================
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49#include "comlock.inc"
50C-----------------------------------------------
51C G l o b a l P a r a m e t e r s
52C-----------------------------------------------
53#include "mvsiz_p.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER I_MEM,J_STOK,NSN4,NOINT,ESHIFT,NSN,NSNROLD,IGAP,NIN
58 INTEGER IRECT(4,*),NSV(*),CAND_N(*),CAND_E(*),CAND_A(*)
59 INTEGER PROV_N(MVSIZ),PROV_E(MVSIZ), OLDNUM(*),II_STOK
60C REAL
61 my_real
62 . x(3,*), gap_s(*), gap_m(*),
63 . marge, gap, gapmin, gapmax, bid
64C-----------------------------------------------
65C L o c a l V a r i a b l e s
66C-----------------------------------------------
67 INTEGER I,J,K_STOK,I_STOK,N,NE,NN,IBID
68 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
69 . NSVG(MVSIZ)
70C REAL
71 my_real
72 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
73 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
74 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
75 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
76 . pene(mvsiz), gapv(mvsiz), rbid
77C-----------------------------------------------
78 ibid = 0
79 rbid = zero
80 CALL i7cor3t(j_stok ,x ,irect ,nsv ,prov_e ,
81 1 prov_n ,igap ,gap ,x1 ,x2 ,
82 2 x3 ,x4 ,y1 ,y2 ,y3 ,
83 3 y4 ,z1 ,z2 ,z3 ,z4 ,
84 4 xi ,yi ,zi ,stif ,ix1 ,
85 5 ix2 ,ix3 ,ix4 ,nsn ,gap_s ,
86 6 gap_m ,gapv ,gapmax,gapmin,bid ,
87 7 10 ,nin ,rbid ,rbid ,ibid ,
88 8 rbid ,rbid )
89C-----------------------------------------------
90 CALL i7pen3(j_stok ,marge ,x1 ,x2 ,x3 ,
91 . x4 ,y1 ,y2 ,y3 ,y4 ,
92 . z1 ,z2 ,z3 ,z4 ,xi ,
93 . yi ,zi ,pene ,ix1 ,ix2 ,
94 . ix3 ,ix4 ,igap ,gap ,gapv )
95C-----------------------------------------------
96 k_stok = 0
97 DO i=1,j_stok
98 IF (pene(i)/=zero) THEN
99 n = prov_n(i)
100 IF(n>nsn) THEN
101C numerotation tris precedent pour les noeuds non locaux (SPMD)
102 n = oldnum(n-nsn)+nsn
103 IF(n==nsn) n = nsn+nsnrold+1
104 END IF
105C attention au shift
106 ne = prov_e(i)+eshift
107 DO j = cand_a(n),cand_a(n+1)-1
108 IF (cand_e(j)==ne) GOTO 100
109 ENDDO
110 k_stok = k_stok + 1
111 100 CONTINUE
112 ENDIF
113 ENDDO
114C
115 IF(k_stok==0)RETURN
116C
117#include "lockon.inc"
118 i_stok = ii_stok
119 IF(i_stok+k_stok>nsn4) THEN
120 i_mem = 2
121#include "lockoff.inc"
122 RETURN
123 ENDIF
124 ii_stok = i_stok + k_stok
125#include "lockoff.inc"
126C-----------------------------------------------
127 DO i=1,j_stok
128 IF (pene(i)/=zero) THEN
129 n = prov_n(i)
130 nn = n
131 IF(n>nsn) THEN
132C numerotation tris precedent pour les noeuds non locaux (SPMD)
133 n = oldnum(n-nsn)+nsn
134 IF(n==nsn) n = nsn+nsnrold+1
135 END IF
136C attention au shift
137 ne = prov_e(i)+eshift
138 DO j = cand_a(n),cand_a(n+1)-1
139 IF (cand_e(j)==ne) GOTO 200
140 ENDDO
141 i_stok = i_stok + 1
142 cand_n(i_stok) = nn
143 cand_e(i_stok) = ne
144 200 CONTINUE
145 ENDIF
146 ENDDO
147C-----------------------------------------------
148 RETURN
149 END
subroutine i10sto(j_stok, irect, x, nsv, ii_stok, cand_n, cand_e, nsn4, noint, marge, i_mem, prov_n, prov_e, cand_a, eshift, nsn, oldnum, nsnrold, igap, gap, gap_s, gap_m, gapmin, gapmax, nin)
Definition i10sto.F:37
subroutine i7cor3t(jlt, x, irect, nsv, cand_e, cand_n, igap, gap, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, ix1, ix2, ix3, ix4, nsn, gap_s, gap_m, gapv, gapmax, gapmin, curv_max, ityp, nin, gap_s_l, gap_m_l, intth, drad, dgapload)
Definition i7cor3t.F:40
subroutine i7pen3(marge, gapv, n1, n2, n3, pene, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, last)
Definition i7pen3.F:43