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

Go to the source code of this file.

Functions/Subroutines

subroutine i12for3 (nsn, nmn, a, irect, crst, msr, nsv, irtl, ms, weight, stifn, mmass, tagkine, skew, wa, tets, tetm, ilev, iref)

Function/Subroutine Documentation

◆ i12for3()

subroutine i12for3 ( integer nsn,
integer nmn,
a,
integer, dimension(4,*) irect,
crst,
integer, dimension(*) msr,
integer, dimension(*) nsv,
integer, dimension(*) irtl,
ms,
integer, dimension(*) weight,
stifn,
mmass,
integer, dimension(*) tagkine,
skew,
wa,
tets,
tetm,
integer ilev,
integer iref )

Definition at line 29 of file i12for3.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 NSN, NMN,
42 . IRECT(4,*), MSR(*), NSV(*), IRTL(*), WEIGHT(*),TAGKINE(*)
43 INTEGER ILEV,IREF
45 . a(*), crst(2,*), ms(*), stifn(*), mmass(*),wa(3,*),
46 . skew(lskew,*),tetm(*),tets(*)
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "param_c.inc"
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER NIR, I, J, I3, J3, I2, J2, I1, J1, II, L, JJ,JL
57 . h(4), xmsj, ss, tt, xmsi, fxi, fyi, fzi,sp,sm,tp,tm,
58 . p(9),cst,sst,fxr, fyr, fzr
59C-----------------------------------------------
60 nir=2
61 IF(n2d==0)nir=4
62 IF(ilev==1)THEN
63 DO i=1,9
64 p(i)=skew(i,iref+1)
65 ENDDO
66 DO ii=1,nmn
67 wa(1,ii)=zero
68 wa(2,ii)=zero
69 wa(3,ii)=zero
70 ENDDO
71 ENDIF
72
73 !Cel sauvegarde de la masse initiale
74 DO ii=1,nmn
75 j=msr(ii)
76 mmass(ii)=ms(j)
77 ENDDO
78
79 DO ii=1,nsn
80 IF(tagkine(ii)>0)THEN
81 i=nsv(ii)
82 l=irtl(ii)
83 ss=crst(1,ii)
84 tt=crst(2,ii)
85 i3=3*i
86 i2=i3-1
87 i1=i2-1
88 xmsi=ms(i)
89 fxi=a(i1)
90 fyi=a(i2)
91 fzi=a(i3)
92 sp=one+ss
93 sm=one-ss
94 tp=fourth*(one+tt)
95 tm=fourth*(one-tt)
96 h(1)=tm*sm
97 h(2)=tm*sp
98 h(3)=tp*sp
99 h(4)=tp*sm
100 IF(ilev==1)THEN
101 IF(tets(ii)<10000. )THEN
102 cst=cos(tets(ii))
103 sst=sin(tets(ii))
104 fxr=fxi*p(1)+fyi*p(2)+fzi*p(3)
105 fyr=fxi*p(4)+fyi*p(5)+fzi*p(6)
106 fzr=fxi*p(7)+fyi*p(8)+fzi*p(9)
107 fxi=fxr
108 fyi= fyr*cst+fzr*sst
109 fzi= -fyr*sst+fzr*cst
110 DO jj=1,nir
111 jl=irect(jj,l)
112 j=msr(jl)
113 wa(1,jl)=wa(1,jl)+fxi*h(jj)
114 wa(2,jl)=wa(2,jl)+fyi*h(jj)
115 wa(3,jl)=wa(3,jl)+fzi*h(jj)
116 ms(j)=ms(j)+xmsi*h(jj)
117 stifn(j)=stifn(j)+stifn(i)*h(jj)
118 ENDDO
119 ELSE
120 DO jj=1,nir
121 j=msr(irect(jj,l))
122 j3=3*j
123 j2=j3-1
124 j1=j2-1
125 a(j1)=a(j1)+fxi*h(jj)
126 a(j2)=a(j2)+fyi*h(jj)
127 a(j3)=a(j3)+fzi*h(jj)
128 ms(j)=ms(j)+xmsi*h(jj)
129 stifn(j)=stifn(j)+stifn(i)*h(jj)
130 ENDDO
131 ENDIF
132 ELSE
133 DO jj=1,nir
134 j=msr(irect(jj,l))
135 j3=3*j
136 j2=j3-1
137 j1=j2-1
138 a(j1)=a(j1)+fxi*h(jj)
139 a(j2)=a(j2)+fyi*h(jj)
140 a(j3)=a(j3)+fzi*h(jj)
141 ms(j)=ms(j)+xmsi*h(jj)
142 stifn(j)=stifn(j)+stifn(i)*h(jj)
143
144 ENDDO
145 ENDIF !(ILEV==1)
146 stifn(i)=em20
147 a(i1)=zero
148 a(i2)=zero
149 a(i3)=zero
150 ENDIF
151 ENDDO
152
153 IF(ilev==1 )THEN
154 DO ii=1,nmn
155 cst=cos(tetm(ii))
156 sst=sin(tetm(ii))
157 fxr=wa(1,ii)
158 fyr=wa(2,ii)*cst-wa(3,ii)*sst
159 fzr=wa(2,ii)*sst+wa(3,ii)*cst
160 wa(1,ii)=fxr*p(1)+fyr*p(4)+fzr*p(7)
161 wa(2,ii)=fxr*p(2)+fyr*p(5)+fzr*p(8)
162 wa(3,ii)=fxr*p(3)+fyr*p(6)+fzr*p(9)
163 j=msr(ii)
164 j3=3*j
165 j2=j3-1
166 j1=j2-1
167 a(j1)=a(j1)+wa(1,ii)
168 a(j2)=a(j2)+wa(2,ii)
169 a(j3)=a(j3)+wa(3,ii)
170 ENDDO
171 ENDIF
172
173 RETURN
#define my_real
Definition cppsort.cpp:32