OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
update_weight_rbe3.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!|| update_weight_rbe3 ../starter/source/spmd/domain_decomposition/update_weight_rbe3.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- uses -----------------------------------------------------
28!|| inter_cand_mod ../starter/share/modules1/inter_cand_mod.F
29!||====================================================================
30 SUBROUTINE update_weight_rbe3(NELEMINT,IFIEND,S_LRBE3,NRBE3L,NRBE3,
31 . LRBE3,IRBE3,INTER_CAND)
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C D u m m y A r g u m e n t s
39C-----------------------------------------------
40 INTEGER, INTENT(inout) :: NELEMINT !< number of new weight for rbe3
41 INTEGER, INTENT(inout) :: IFIEND !< adress of the last weight
42 INTEGER, INTENT(in) :: S_LRBE3 !< size of LRBE3 array
43 INTEGER, INTENT(in) :: NRBE3L !< 1rst dim of size of IRBE3
44 INTEGER, INTENT(in) :: NRBE3 !< 2nd dim of size of IRBE3, number of RBE3
45 INTEGER, DIMENSION(S_LRBE3), INTENT(in) :: LRBE3 !< data for rbe3
46 INTEGER, DIMENSION(NRBE3L,NRBE3), INTENT(in) :: IRBE3 !< data for rbe3
47 TYPE(inter_cand_), INTENT(inout) :: INTER_CAND
48C-----------------------------------------------
49C L o c a l V a r i a b l e s
50C-----------------------------------------------
51 INTEGER :: I,J,NS,NM,NMT,M,NFT,JLT,IAD,II
52C
53C========================================================================|
54 nmt = 0
55 ! ---------------------------
56 ! loop over the RBE3
57 DO i=1,nrbe3
58 iad = irbe3(1,i)
59 ns = irbe3(3,i)
60 nm = irbe3(5,i)
61 DO nft =0,nm-1 ,4
62 jlt = min(4, nm - nft )
63 nelemint = nelemint + 1
64 nmt = nmt + 1
65 DO j = 1 ,jlt
66 ii = j+ nft
67 m= lrbe3(iad+ii)
68 inter_cand%IXINT(j,nelemint)=m
69 ENDDO
70 IF (jlt==1) THEN
71 inter_cand%IXINT(2,nelemint)=inter_cand%IXINT(1,nelemint)
72 inter_cand%IXINT(3,nelemint)=inter_cand%IXINT(1,nelemint)
73 inter_cand%IXINT(4,nelemint)=inter_cand%IXINT(1,nelemint)
74 ELSEIF (jlt==2) THEN
75 inter_cand%IXINT(3,nelemint)=inter_cand%IXINT(1,nelemint)
76 inter_cand%IXINT(4,nelemint)=inter_cand%IXINT(2,nelemint)
77 ELSEIF (jlt==3) THEN
78 inter_cand%IXINT(4,nelemint)=inter_cand%IXINT(3,nelemint)
79 ENDIF
80 inter_cand%IXINT(5,nelemint)=ns
81 inter_cand%IXINT(6,nelemint)=100
82 inter_cand%IXINT(7:8,nelemint)=0
83 ENDDO
84 ENDDO
85 ! ---------------------------
86 ifiend = ifiend + nmt
87 ! ---------------------------
88 RETURN
89 END SUBROUTINE update_weight_rbe3
#define min(a, b)
Definition macros.h:20
subroutine update_weight_rbe3(nelemint, ifiend, s_lrbe3, nrbe3l, nrbe3, lrbe3, irbe3, inter_cand)