OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
update_weight_inter_type2.F File Reference
#include "implicit_f.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine update_weight_inter_type2 (nelemint, interface_id, nsn, nrtm, ifiend, n2d, irect, nsv, irtl, inter_cand)

Function/Subroutine Documentation

◆ update_weight_inter_type2()

subroutine update_weight_inter_type2 ( integer, intent(inout) nelemint,
integer, intent(in) interface_id,
integer, intent(in) nsn,
integer, intent(in) nrtm,
integer, intent(inout) ifiend,
integer, intent(in) n2d,
integer, dimension(4,nrtm), intent(in) irect,
integer, dimension(nsn), intent(in) nsv,
integer, dimension(nsn), intent(in) irtl,
type(inter_cand_), intent(inout) inter_cand )
Parameters
[in]interface_idinterface id
[in]nsnnumber of S node
[in]nrtmnumber of segment
[in,out]ifiend???
[in]n2dflag for 2D/3D, 0-->3D, 1-->2D
[in]irectlist of M nodes for the NRTM segments
[in]nsvlist of S nodes

Definition at line 30 of file update_weight_inter_type2.F.

32!$COMMENT
33! UPDATE_WEIGHT_INTER_TYPE2 description :
34! save the contact data for interface type 2
35!
36! UPDATE_WEIGHT_INTER_TYPE2 organization :
37! for each contact, save :
38! * 2 main node IDs
39! * 1 secondary node ID
40! * 1 segment ID
41! * type of interface
42!$ENDCOMMENT
43
45C-----------------------------------------------
46C I m p l i c i t T y p e s
47C-----------------------------------------------
48#include "implicit_f.inc"
49C-----------------------------------------------
50C C o m m o n B l o c k s
51C-----------------------------------------------
52C-----------------------------------------------
53C D u m m y A r g u m e n t s
54C-----------------------------------------------
55 INTEGER, INTENT(inout) :: NELEMINT
56 INTEGER, INTENT(in) :: INTERFACE_ID !< interface id
57 INTEGER, INTENT(in) :: NSN !< number of S node
58 INTEGER, INTENT(in) :: NRTM !< number of segment
59 INTEGER, INTENT(inout) :: IFIEND !< ???
60 INTEGER, INTENT(in) :: N2D !< flag for 2D/3D, 0-->3D, 1-->2D
61 INTEGER, DIMENSION(NSN), INTENT(in) :: IRTL
62 INTEGER, DIMENSION(4,NRTM), INTENT(in) :: IRECT !< list of M nodes for the NRTM segments
63 INTEGER, DIMENSION(NSN), INTENT(in) :: NSV !< list of S nodes
64 TYPE(INTER_CAND_), INTENT(inout) :: INTER_CAND
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER N,NIR,NN
69 INTEGER :: S_NODE_ID
70 INTEGER :: SEGMENT_ID
71C-----------------------------------------------
72 ! flush %ixint array to 0
73 inter_cand%IXINT(1:inter_cand%S_IXINT_1,nelemint+1:nelemint+nsn) = 0
74 inter_cand%ADDRESS(interface_id) = nelemint+1 ! save the adress of the first pair
75 nir=2
76 IF(n2d==0)nir=4
77 nn = 0
78 ! ---------------------------
79 ! loop over the secondary node
80 DO n = 1, nsn
81 s_node_id = nsv(n) ! S node id
82 segment_id = irtl(n) ! segment id
83 IF(segment_id/=0)THEN
84 nn = nn + 1
85 inter_cand%IXINT(1,nelemint+nn)=irect(1,segment_id)
86 inter_cand%IXINT(2,nelemint+nn)=irect(2,segment_id)
87 IF (nir==2) THEN
88 inter_cand%IXINT(3,nelemint+nn)=irect(1,segment_id)
89 inter_cand%IXINT(4,nelemint+nn)=irect(2,segment_id)
90 ELSE
91 inter_cand%IXINT(3,nelemint+nn)=irect(3,segment_id)
92 inter_cand%IXINT(4,nelemint+nn)=irect(4,segment_id)
93 END IF
94 inter_cand%IXINT(5,nelemint+nn)=s_node_id
95 inter_cand%IXINT(6,nelemint+nn)=2
96 inter_cand%IXINT(7,nelemint+nn)=segment_id
97 inter_cand%IXINT(8,nelemint+nn)=interface_id
98 END IF
99 ENDDO
100 ! ---------------------------
101 nelemint = nelemint+nn
102 ifiend = ifiend + nn
103 inter_cand%ADDRESS(interface_id+1) = nelemint ! save the adress of the last pair
104 ! ---------------------------
105 RETURN