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

Go to the source code of this file.

Functions/Subroutines

subroutine carm24 (nel, yms, y0s, ets, epxa, siga, deps1, deps2, deps3, deps4, deps5, deps6)

Function/Subroutine Documentation

◆ carm24()

subroutine carm24 ( integer nel,
intent(in) yms,
intent(in) y0s,
intent(in) ets,
intent(inout) epxa,
intent(inout) siga,
intent(in) deps1,
intent(in) deps2,
intent(in) deps3,
intent(in) deps4,
intent(in) deps5,
intent(in) deps6 )

Definition at line 28 of file carm24.F.

30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C D u m m y A r g u m e n t s
36C-----------------------------------------------
37 INTEGER NEL
38 my_real, INTENT(IN) :: yms,y0s,ets
39 my_real, DIMENSION(NEL,3) ,INTENT(INOUT) :: siga,epxa
40 my_real, DIMENSION(NEL), INTENT(IN) :: deps1,deps2,deps3,
41 . deps4,deps5,deps6
42C-----------------------------------------------
43C L o c a l V a r i a b l e s
44C-----------------------------------------------
45 INTEGER I
46 my_real hs
47 my_real, DIMENSION(NEL) :: s01,s02,s03,s1,s2,s3,
48 . de1,de2,de3,scle1,scle2,scle3,scal1,scal2,scal3
49C=======================================================================
50 hs = yms*ets / max(yms-ets,em20)
51c
52 DO i = 1,nel
53 s1(i) = siga(i,1)+yms*deps1(i)
54 s2(i) = siga(i,2)+yms*deps2(i)
55 s3(i) = siga(i,3)+yms*deps3(i)
56 s01(i) = y0s+hs*abs(epxa(i,1))
57 s02(i) = y0s+hs*abs(epxa(i,2))
58 s03(i) = y0s+hs*abs(epxa(i,3))
59 scle1(i) = half+sign(half,abs(s1(i))-s01(i) )
60 scle2(i) = half+sign(half,abs(s2(i))-s02(i) )
61 scle3(i) = half+sign(half,abs(s3(i))-s03(i) )
62 ENDDO
63 DO i = 1,nel
64 s01(i) = sign(s01(i),s1(i))
65 s02(i) = sign(s02(i),s2(i))
66 s03(i) = sign(s03(i),s3(i))
67 scal1(i) = abs(s1(i)-s01(i))/max(abs(yms*deps1(i)),em20)
68 scal2(i) = abs(s2(i)-s02(i))/max(abs(yms*deps2(i)),em20)
69 scal3(i) = abs(s3(i)-s03(i))/max(abs(yms*deps3(i)),em20)
70 de1(i) = scle1(i)*scal1(i)*(one-ets/(yms+em10))*deps1(i)
71 de2(i) = scle2(i)*scal2(i)*(one-ets/(yms+em10))*deps2(i)
72 de3(i) = scle3(i)*scal3(i)*(one-ets/(yms+em10))*deps3(i)
73 epxa(i,1) = epxa(i,1)+de1(i)
74 epxa(i,2) = epxa(i,2)+de2(i)
75 epxa(i,3) = epxa(i,3)+de3(i)
76 ENDDO
77 DO i = 1,nel
78 s01(i) = s01(i)+hs*de1(i)
79 s02(i) = s02(i)+hs*de2(i)
80 s03(i) = s03(i)+hs*de3(i)
81 siga(i,1) = (one-scle1(i))*s1(i)+scle1(i)*s01(i)
82 siga(i,2) = (one-scle2(i))*s2(i)+scle2(i)*s02(i)
83 siga(i,3) = (one-scle3(i))*s3(i)+scle3(i)*s03(i)
84 ENDDO
85c--------------
86 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21