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

Go to the source code of this file.

Functions/Subroutines

subroutine sfor_visn4 (vc, fld, tol_v, ifc1, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, for_t1, for_t2, for_t3, for_t4, ifctl, stif, mu, nel, e_distor, dt1)

Function/Subroutine Documentation

◆ sfor_visn4()

subroutine sfor_visn4 ( intent(in) vc,
intent(in) fld,
intent(in) tol_v,
integer, dimension(mvsiz), intent(inout) ifc1,
intent(in) vx1,
intent(in) vx2,
intent(in) vx3,
intent(in) vx4,
intent(in) vy1,
intent(in) vy2,
intent(in) vy3,
intent(in) vy4,
intent(in) vz1,
intent(in) vz2,
intent(in) vz3,
intent(in) vz4,
intent(inout) for_t1,
intent(inout) for_t2,
intent(inout) for_t3,
intent(inout) for_t4,
integer, intent(out) ifctl,
intent(inout) stif,
intent(in) mu,
integer, intent(in) nel,
intent(inout) e_distor,
intent(in) dt1 )

Definition at line 28 of file sfor_visn4.F.

35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
46 INTEGER, INTENT (IN) :: NEL
47 INTEGER, INTENT (OUT) :: IFCTL
48 INTEGER, DIMENSION(MVSIZ),INTENT (INOUT) :: IFC1
49 my_real, DIMENSION(MVSIZ), INTENT (INOUT) :: stif
50 my_real, DIMENSION(MVSIZ), INTENT (IN) :: fld ,
51 4 vx1, vx2, vx3, vx4,
52 6 vy1, vy2, vy3, vy4,
53 8 vz1, vz2, vz3, vz4
54 my_real, DIMENSION(MVSIZ,3), INTENT (IN) :: vc
55 my_real, DIMENSION(MVSIZ,3), INTENT (INOUT) ::
56 . for_t1, for_t2, for_t3, for_t4
57 my_real, INTENT (IN) :: tol_v,mu,dt1
58 my_real, DIMENSION(NEL), INTENT (INOUT) :: e_distor
59C-----------------------------------------------
60C C o m m o n B l o c k s
61C-----------------------------------------------
62C-----------------------------------------------
63C L o c a l V a r i a b l e s
64C-----------------------------------------------
65 INTEGER I,J
66C 12
68 . vxc,vyc,vzc,fx,fy,fz,fac,vnj(4),vl,tol_v2,
69 . vxmax,vymax,vzmax,v2max,vc2,lam_min,lam_min2,lam_max
70C----------------------------
71 tol_v2 = tol_v*tol_v
72 ifctl = 0
73 DO i=1,nel
74 vc2 = vc(i,1)*vc(i,1)+vc(i,2)*vc(i,2)+vc(i,3)*vc(i,3)
75 IF (vc2 <em20.OR.stif(i)==zero) cycle
76 vl = tol_v2*vc2
77 vnj(1) = vx1(i)*vx1(i) + vy1(i)*vy1(i) + vz1(i)*vz1(i)
78 vnj(2) = vx2(i)*vx2(i) + vy2(i)*vy2(i) + vz2(i)*vz2(i)
79 vnj(3) = vx3(i)*vx3(i) + vy3(i)*vy3(i) + vz3(i)*vz3(i)
80 vnj(4) = vx4(i)*vx4(i) + vy4(i)*vy4(i) + vz4(i)*vz4(i)
81 v2max = max(vnj(1),vnj(2),vnj(3),vnj(4))
82 IF (v2max > vl) ifc1(i) = 1
83 IF (ifc1(i) > 0) ifctl=1
84 END DO
85C
86 IF (ifctl==1) THEN
87 fac = one + two*mu
88 DO i=1,nel
89 IF (ifc1(i)==0) cycle
90 for_t1(i,1) = for_t1(i,1) - fld(i)*(vx1(i)-vc(i,1))
91 for_t1(i,2) = for_t1(i,2) - fld(i)*(vy1(i)-vc(i,2))
92 for_t1(i,3) = for_t1(i,3) - fld(i)*(vz1(i)-vc(i,3))
93 for_t2(i,1) = for_t2(i,1) - fld(i)*(vx2(i)-vc(i,1))
94 for_t2(i,2) = for_t2(i,2) - fld(i)*(vy2(i)-vc(i,2))
95 for_t2(i,3) = for_t2(i,3) - fld(i)*(vz2(i)-vc(i,3))
96 for_t3(i,1) = for_t3(i,1) - fld(i)*(vx3(i)-vc(i,1))
97 for_t3(i,2) = for_t3(i,2) - fld(i)*(vy3(i)-vc(i,2))
98 for_t3(i,3) = for_t3(i,3) - fld(i)*(vz3(i)-vc(i,3))
99 for_t4(i,1) = for_t4(i,1) - fld(i)*(vx4(i)-vc(i,1))
100 for_t4(i,2) = for_t4(i,2) - fld(i)*(vy4(i)-vc(i,2))
101 for_t4(i,3) = for_t4(i,3) - fld(i)*(vz4(i)-vc(i,3))
102 stif(i) = fac*stif(i)
103 e_distor(i)=e_distor(i)- dt1*(for_t1(i,1)*(vx1(i)-vc(i,1))+
104 . for_t1(i,2)*(vy1(i)-vc(i,2))+
105 . for_t1(i,3)*(vz1(i)-vc(i,3))+
106 . for_t2(i,1)*(vx2(i)-vc(i,1))+
107 . for_t2(i,2)*(vy2(i)-vc(i,2))+
108 . for_t2(i,3)*(vz2(i)-vc(i,3))+
109 . for_t3(i,1)*(vx3(i)-vc(i,1))+
110 . for_t3(i,2)*(vy3(i)-vc(i,2))+
111 . for_t3(i,3)*(vz3(i)-vc(i,3))+
112 . for_t4(i,1)*(vx4(i)-vc(i,1))+
113 . for_t4(i,2)*(vy4(i)-vc(i,2))+
114 . for_t4(i,3)*(vz4(i)-vc(i,3)))
115 ENDDO
116 END IF
117C
118 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21