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

Go to the source code of this file.

Functions/Subroutines

subroutine inint0 (x, irect, nseg, nod2seg, nsv, msr, iloc, nmn, nsn, nrt, sirect, s_n2seg)

Function/Subroutine Documentation

◆ inint0()

subroutine inint0 ( dimension(3,*), intent(in) x,
integer, dimension(4,sirect/4), intent(in) irect,
integer, dimension(*), intent(in) nseg,
integer, dimension(s_n2seg), intent(inout) nod2seg,
integer, dimension(*), intent(in) nsv,
integer, dimension(*), intent(in) msr,
integer, dimension(*), intent(inout) iloc,
integer, intent(in) nmn,
integer, intent(in) nsn,
integer, intent(in) nrt,
integer, intent(in) sirect,
integer, intent(in) s_n2seg )
Parameters
[in]sirectarray size IRECT(SIRECT)
[in]s_n2segarray size NOD2SEG(S_N2SEG)

Definition at line 31 of file inint0.F.

32C-----------------------------------------------------------------------
33C
34C-----------------------------------------------------------------------
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER,INTENT(IN) :: SIRECT !< array size IRECT(SIRECT)
43 INTEGER,INTENT(IN) :: S_N2SEG !< array size NOD2SEG(S_N2SEG)
44 INTEGER, INTENT(IN) :: NMN, NSN, NRT
45 INTEGER, INTENT(IN) :: IRECT(4,SIRECT/4)
46 INTEGER, INTENT(IN) :: NSEG(*), NSV(*), MSR(*)
47 INTEGER, INTENT(INOUT) :: NOD2SEG(S_N2SEG)
48 INTEGER, INTENT(INOUT) :: ILOC(*)
49 my_real, INTENT(IN) :: x(3,*)
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER II, I, JJ, J, KK, L1, L2, L
54 my_real lower_dist, dist
55 LOGICAL lFOUND
56C-----------------------------------------------
57C P r e - C o n d i t i o n
58C-----------------------------------------------
59 IF(nrt == 0) RETURN
60C-----------------------------------------------
61C S o u r c e L i n e s
62C-----------------------------------------------
63 kk = 0
64C
65C Compute nearest secnd node from main node (stored in ILOC)
66C inter type1 : main<->secnd ; nearest main node (lag) from ale node (ale)
67 DO ii=1,nmn
68 i=msr(ii)
69 lower_dist = ep20
70 DO jj=1,nsn
71 j=nsv(jj)
72 dist = (x(1,i)-x(1,j))**2 + (x(2,i)-x(2,j))**2 + (x(3,i)-x(3,j))**2
73 IF(dist <= lower_dist)THEN
74 lower_dist = dist
75 iloc(ii)= jj ! nearest secnd node more main node ii
76 ENDIF
77 ENDDO
78 ENDDO
79C
80C Compute NOD2SEG : List of Connected Segments to secnd nodes
81C inter1 : main <-> secnd ; connected main segment to main nodes (lag)
82 DO i=1,nrt
83 DO j=1,4
84 IF(irect(j,i) /= 0) THEN
85 lfound=.false.
86 DO kk=1,nsn
87 IF(nsv(kk) == irect(j,i)) THEN
88 lfound = .true.
89 EXIT
90 ENDIF
91 ENDDO
92
93 IF(lfound)THEN
94 ii=0
95 l1=nseg(kk)
96 l2=nseg(kk+1)-1
97 DO l=l1,l2
98 IF(nod2seg(l) /= 0) ii=ii+1
99 ENDDO
100 nod2seg(l1+ii)=i
101 ENDIF
102 ENDIF
103 ENDDO
104 ENDDO
105C
106 RETURN
#define my_real
Definition cppsort.cpp:32