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

Go to the source code of this file.

Functions/Subroutines

subroutine i12msr3 (xs, xm, irect, lmsr, msr, nsv, iloc, irtl, nseg, lft, llt, nft)

Function/Subroutine Documentation

◆ i12msr3()

subroutine i12msr3 ( dimension(3,*), intent(in) xs,
dimension(3,*), intent(in) xm,
integer, dimension(4,*), intent(in) irect,
integer, dimension(*), intent(in) lmsr,
integer, dimension(*), intent(in) msr,
integer, dimension(*), intent(in) nsv,
integer, dimension(*), intent(in) iloc,
integer, dimension(*), intent(inout) irtl,
integer, dimension(*), intent(in) nseg,
integer, intent(inout) lft,
integer, intent(inout) llt,
integer, intent(inout) nft )

Definition at line 30 of file i12msr3.F.

34C-----------------------------------------------
35C I m p l i c i t T y p e s
36C-----------------------------------------------
37#include "implicit_f.inc"
38C-----------------------------------------------
39C D u m m y A r g u m e n t s
40C-----------------------------------------------
41 INTEGER, INTENT(INOUT) :: LFT
42 INTEGER, INTENT(INOUT) :: LLT
43 INTEGER, INTENT(INOUT) :: NFT
44 INTEGER, INTENT(IN) :: IRECT(4,*), LMSR(*), MSR(*), NSV(*), ILOC(*), NSEG(*)
45 INTEGER, INTENT(INOUT) :: IRTL(*)
46 my_real, INTENT(IN) :: xs(3,*),xm(3,*)
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50C-----------------------------------------------
51C L o c a l V a r i a b l e s
52C-----------------------------------------------
53 INTEGER I, IL, JL, L, JJJ, JJ, J1, J2, LL1, LL2, LL, LG, KKK, KK, K1, K2, M, N
54 INTEGER KM1(4), KN1(4), LSEG, LSEG_NEW
55 my_real bmin, bmax
56 DATA km1/2,3,4,1/
57 DATA kn1/4,1,2,3/
58C-----------------------------------------------
59 DO i=lft,llt
60 il=i+nft
61 jl=iloc(il)
62 l=irtl(il)
63 bmax=-ep30
64 lseg_new=0
65
66 IF(l/=0)THEN
67 lseg=l
68 DO jjj=1,4
69 jj=jjj
70 IF(irect(jj,l)==jl) EXIT
71 ENDDO
72 j1=km1(jj)
73 j2=kn1(jj)
74 IF(jj==3.AND.irect(3,l)==irect(4,l)) j1=1
75 m=irect(j1,l)
76 n=irect(j2,l)
77 CALL i12_nearest_seg(xs, xm, il, jl, m, n, lseg, lseg_new, bmin, bmax)
78 IF(bmin >= zero) cycle
79 END IF
80
81 ll1=nseg(jl)
82 ll2=nseg(jl+1)-1
83 DO ll=ll1,ll2
84 lg=lmsr(ll)
85 lseg=lg
86 IF(l==lg) cycle
87 DO kkk=1,4
88 kk=kkk
89 IF(irect(kk,lg)==jl) EXIT
90 END DO
91 k1=km1(kk)
92 k2=kn1(kk)
93 IF(kk==3.AND.irect(3,lg)==irect(4,lg)) k1=1
94 m=irect(k1,lg)
95 n=irect(k2,lg)
96 CALL i12_nearest_seg(xs, xm, il, jl, m, n, lseg, lseg_new, bmin, bmax)
97 IF(bmin < zero) cycle
98 irtl(il)=lseg_new
99 GO TO 200
100 END DO
101C
102 irtl(il)=lseg_new
103 200 CONTINUE
104 END DO
105
106 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine i12_nearest_seg(xs, xm, is, m1, m2, m3, lseg, lseg_new, bmin, bmax)