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

Go to the source code of this file.

Functions/Subroutines

subroutine m1tot_stab24 (sig, sigl, g2, g, offg, ismstr, nel)

Function/Subroutine Documentation

◆ m1tot_stab24()

subroutine m1tot_stab24 ( intent(inout) sig,
intent(inout) sigl,
intent(in) g2,
intent(inout) g,
intent(in) offg,
integer, intent(in) ismstr,
integer, intent(in) nel )

Definition at line 28 of file m1tot_stab24.F.

29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33C-----------------------------------------------
34C G l o b a l P a r a m e t e r s
35C-----------------------------------------------
36#include "mvsiz_p.inc"
37C-----------------------------------------------
38C C o m m o n B l o c k s
39C-----------------------------------------------
40C-----------------------------------------------
41C D u m m y A r g u m e n t s
42C-----------------------------------------------
43 INTEGER, INTENT(IN) :: NEL,ISMSTR
44C
45 my_real, INTENT(IN) :: g2
46 my_real, DIMENSION(NEL,6), INTENT(INOUT) :: sig,sigl
47 my_real, DIMENSION(NEL), INTENT(IN) :: offg
48 my_real, DIMENSION(MVSIZ), INTENT(INOUT) :: g
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
52 INTEGER I, J,ipr
54 . ff,facg,facc,frho,p,facmax,facd,dp,sig2(6)
55C-----------------------------------------------
56 DO i=1,nel
57 ff = -min(sig(i,1),sig(i,2),sig(i,3))
58 IF (offg(i)>one .OR. ff <=g2 ) cycle
59 facd = max(one,sqrt(ff/g2))
60 facg = onep2*facd
61 sig(i,4)=facg*sig(i,4)
62 sig(i,5)=facg*sig(i,5)
63 sig(i,6)=facg*sig(i,6)
64 p = -third*(sig(i,1)+sig(i,2)+sig(i,3))
65 sig(i,1)=facd*(sig(i,1)+p)-p
66 sig(i,2)=facd*(sig(i,2)+p)-p
67 sig(i,3)=facd*(sig(i,3)+p)-p
68 g(i) = facg*g(i)
69 END DO
70 IF (ismstr==12) THEN
71 DO i=1,nel
72 ff = -min(sig(i,1),sig(i,2),sig(i,3))
73 IF (ff <=g2 .OR. offg(i)<=one) cycle
74 facd = max(one,ff/g2)
75 IF (facd>one) facd = onep25*facd
76 facg = facd - one
77 sig2(1) = sig(i,1)-sigl(i,1)
78 sig2(2) = sig(i,2)-sigl(i,2)
79 sig2(3) = sig(i,3)-sigl(i,3)
80 sig2(4) = sig(i,4)-sigl(i,4)
81 sig2(5) = sig(i,5)-sigl(i,5)
82 sig2(6) = sig(i,6)-sigl(i,6)
83 sig(i,4)=sig(i,4)+facg*sig2(4)
84 sig(i,5)=sig(i,5)+facg*sig2(5)
85 sig(i,6)=sig(i,6)+facg*sig2(6)
86 facd = half*facg
87 p = -third*(sig2(1)+sig2(2)+sig2(3))
88 sig(i,1)=sig(i,1)+facd*(sig2(1)+p)-p
89 sig(i,2)=sig(i,2)+facd*(sig2(2)+p)-p
90 sig(i,3)=sig(i,3)+facd*(sig2(3)+p)-p
91 g(i) = facg*g(i)
92 END DO
93 END IF !(ISMSTR==12) THEN
94C
95 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21