28 SUBROUTINE carm24(NEL ,YMS ,Y0S ,ETS ,EPXA ,SIGA ,
29 . DEPS1,DEPS2,DEPS3,DEPS4,DEPS5,DEPS6)
33#include "implicit_f.inc"
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,
47 my_real,
DIMENSION(NEL) :: s01,s02,s03,s1,s2,s3,
48 . de1,de2,de3,scle1,scle2,scle3,scal1,scal2,scal3
50 hs = yms*ets /
max(yms-ets,em20)
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) )
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)
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)
subroutine carm24(nel, yms, y0s, ets, epxa, siga, deps1, deps2, deps3, deps4, deps5, deps6)