OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i9frms.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "scr08_a_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine i9frms (x, skew, a, fn, ft, irect, lmsr, crst, msr, nsv, iloc, irtl, ms, nor, lcode, iskew, fric, msmn, msmt, nmn, nsn)

Function/Subroutine Documentation

◆ i9frms()

subroutine i9frms ( x,
skew,
a,
fn,
ft,
integer, dimension(4,*) irect,
integer, dimension(4,*) lmsr,
crst,
integer, dimension(*) msr,
integer, dimension(*) nsv,
integer, dimension(*) iloc,
integer, dimension(*) irtl,
ms,
nor,
integer, dimension(*) lcode,
integer, dimension(*) iskew,
fric,
msmn,
msmt,
integer, intent(in) nmn,
integer, intent(in) nsn )

Definition at line 31 of file i9frms.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C C o m m o n B l o c k s
41C-----------------------------------------------
42#include "com01_c.inc"
43#include "scr08_a_c.inc"
44#include "param_c.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER IRECT(4,*), LMSR(4,*), MSR(*), NSV(*), ILOC(*), IRTL(*),
49 . LCODE(*), ISKEW(*)
50C REAL
52 . x(3,*), skew(lskew,*), a(*), fn(*), ft(*), msmn(*), msmt(*),
53 . crst(2,*), ms(*), nor(3,*), fric
54 INTEGER, INTENT(in) :: NMN,NSN
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER NIR, I, J, I3, J3, I2, J2, I1, J1, II, L, JJ, NN, JJ3,
59 . JJ2, JJ1, ISK, LCOD
60C REAL
62 . h(4), n1, n2, n3, aa(3), ss, tt, xmss, fxi, fyi, fzi, fsn,
63 . fxn, fyn, fzn, fxt, fyt, fzt, fst, fac, fxmi, fymi, fzmi,
64 . fsm, fxmn, fymn, fzmn, fxmt, fymt, fzmt, fsmt
65C-----------------------------------------------
66C
67 IF(n2d==0)THEN
68 nir=4
69 ELSE
70 nir=2
71 ENDIF
72C
73 DO 10 i=1,nmn
74 j=msr(i)
75 i3=3*i
76 i2=i3-1
77 i1=i2-1
78 msmn(i1)=ms(j)
79 msmt(i1)=ms(j)
80 fn(i1)=zero
81 fn(i2)=zero
82 fn(i3)=zero
83 ft(i1)=zero
84 ft(i2)=zero
85 ft(i3)=zero
86 10 CONTINUE
87C
88 DO 60 ii=1,nsn
89 i=nsv(ii)
90 j=iloc(ii)
91 IF(j<1) GO TO 60
92 l=irtl(ii)
93 DO 20 jj=1,nir
94 nn=irect(jj,l)
95 20 iy(jj)=nn
96C
97 ss=crst(1,ii)
98 tt=crst(2,ii)
99 n1=nor(1,ii)
100 n2=nor(2,ii)
101 n3=nor(3,ii)
102C
103 i3=3*i
104 i2=i3-1
105 i1=i2-1
106C
107 aa(1)=a(i1)
108 aa(2)=a(i2)
109 aa(3)=a(i3)
110C
111 IF(n2d==0)THEN
112 CALL shapeh(h,ss,tt)
113 ELSE
114 h(1) = half*(one - ss)
115 h(2) = half*(one + ss)
116 ENDIF
117 DO 50 jj=1,nir
118 j3=3*iy(jj)
119 j2=j3-1
120 j1=j2-1
121 jj3=3*msr(iy(jj))
122 jj2=jj3-1
123 jj1=jj2-1
124C
125 xmss=ms(i)*h(jj)
126C-------------------------------------
127C FORCES TOTALE
128C-------------------------------------
129 fxi=aa(1)*xmss
130 fyi=aa(2)*xmss
131 fzi=aa(3)*xmss
132 fxmi=a(jj1)*xmss
133 fymi=a(jj1)*xmss
134 fzmi=a(jj1)*xmss
135C-------------------------------------
136C FORCE NORMALE SECND
137C-------------------------------------
138 fsn=(fxi*n1+fyi*n2+fzi*n3)
139 fxn=fsn*n1
140 fyn=fsn*n2
141 fzn=fsn*n3
142C-------------------------------------
143C FORCE NORMALE main (CORRECTIF)
144C-------------------------------------
145 fsm = (fxmi*n1+fymi*n2+fzmi*n3)
146 fxmn = fsm*n1
147 fymn = fsm*n2
148 fzmn = fsm*n3
149C-------------------------------------
150C SOMME DES FORCES NORMALES
151C-------------------------------------
152 fn(j1) = fn(j1) + fxn - fxmn
153 fn(j2) = fn(j2) + fyn - fymn
154 fn(j3) = fn(j3) + fzn - fzmn
155 msmn(j1) = msmn(j1) + xmss
156C-------------------------------------
157C FORCE FRICTION
158C-------------------------------------
159 fxt = fxi - fxn
160 fyt = fyi - fyn
161 fzt = fzi - fzn
162 fst = sqrt(fxt*fxt+fyt*fyt+fzt*fzt)
163 fac = min(one,fric*fsn/max(em30,fst))
164C-------------------------------------
165C FORCE FRICTION main (CORRECTIF)
166C-------------------------------------
167 fxmt = fxmi - fxmn
168 fymt = fymi - fymn
169 fzmt = fzmi - fzmn
170C-------------------------------------
171C SOMME DES FORCES DE FRICTION
172C-------------------------------------
173 ft(j1)=ft(j1) + (fxt - fxmt)*fac
174 ft(j2)=ft(j2) + (fyt - fymt)*fac
175 ft(j3)=ft(j3) + (fzt - fzmt)*fac
176 msmt(j1)=msmt(j1) + xmss*fac
177C
178 50 CONTINUE
179 60 CONTINUE
180C
181 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine shapeh(h, s, t)
Definition shapeh.F:34