30 SUBROUTINE crit24(NEL,PM,SIG,VK0,VK,OFF,
32 . S01,S02,S03,S04,S05,S06,
33 . S1 ,S2 ,S3 ,S4 ,S5 ,S6 ,
34 . SCAL1,SCAL2,SCAL3,SCLE1,SCLE2,SCLE3,
39#include "implicit_f.inc"
49 my_real,
DIMENSION(NEL,6) :: SIG
50 my_real,
DIMENSION(NPROPM) :: PM
51 my_real,
DIMENSION(NEL),
INTENT(IN) :: S01,S02,,S04,S05,S06,
52 . scal1,scal2,scal3,vk0,rob,off,seq
53 my_real,
DIMENSION(NEL),
INTENT(OUT) :: vk,s1,s2,s3,s4,s5,s6,
54 . scle1,scle2,scle3,sm,dsm
58 INTEGER I,N,NIT,IBUG,NINDEX,NINDEX2,ICRIT_OUTP
60 my_real H1, H2, H3, H4, H5, H6, RO0,ROK0, TOLF,
61 . FC,RT,RC,RCT1,RCT2,AA,AC,,BT,TOL
62 my_real DS1(NEL),DS2(NEL),DS3(NEL),DS4(NEL),DS5(NEL),DS6(NEL),
63 . fa(nel), xn(nel),fn(nel),sn1(nel),sn2(nel),
64 . sn3(nel),sn4(nel),sn5(nel),sn6(nel),sn7(nel),rok(nel)
72 s1(i) = s01(i) * scal1(i)
73 s2(i) = s02(i) * scal2(i)
74 s3(i) = s03(i) * scal3(i)
75 s4(i) = s04(i) * scal1(i)*scal2(i)
76 s5(i) = s05(i) * scal2(i)*scal3(i)
77 s6(i) = s06(i) * scal3(i)*scal1(i)
78 sm(i) = third * (s1(i) + s2(i) + s3(i))
80 ds1(i) = (s1(i) - sig(i,1)) * scal1(i)
81 ds2(i) = (s2(i) - sig(i,2)) * scal2(i)
82 ds3(i) = (s3(i) - sig(i,3)) * scal3(i)
83 ds4(i) = (s4(i) - sig(i,4)) * scal1(i)*scal2(i)
84 ds5(i) = (s5(i) - sig(i,5)) * scal2(i)*scal3(i)
85 ds6(i) = (s6(i) - sig(i,6)) * scal3(i)*scal1(i)
86 dsm(i) = third * (ds1(i)+ds2(i)+ds3(i))
93 ds1(i) = ds1(i)-dsm(i)
94 ds2(i) = ds2(i)-dsm(i)
95 ds3(i) = ds3(i)-dsm(i)
115 IF (off(i) >= one)
THEN
118 rok(i) = rok0+rob(i)-ro0
126 CALL frv(s1,s2,s3,s4,s5,s6,
127 . sm,vk0,vk,rob,fc,rt,rc,
128 . rct1,rct2,aa,ac,bc,bt,
129 . rok,tol,fa,nindex,index,ibug,
130 . nel,seq,icrit_outp)
135#include "vectorize.inc"
138 IF (fa(i) < zero)
THEN
140 ELSEIF(abs(fa(i)) < em10)
THEN
144 nindex2 = nindex2 + 1
154#include "vectorize.inc"
158 sn1(i) = s1(i)-xn(i)*ds1(i)
159 sn2(i) = s2(i)-xn(i)*ds2(i)
160 sn3(i) = s3(i)-xn(i)*ds3(i)
161 sn4(i) = s4(i)-xn(i)*ds4(i)
162 sn5(i) = s5(i)-xn(i)*ds5(i)
163 sn6(i) = s6(i)-xn(i)*ds6(i)
164 sn7(i) = sm(i)-xn(i)*dsm(i)
168 CALL frv(sn1,sn2,sn3,sn4,sn5,sn6,
169 . sn7,vk0,vk,rob,fc,rt,rc,
170 . rct1,rct2,aa,ac,bc,bt,
171 . rok,tol,fn,nindex2,index,ibug,
172 . nel,seq,icrit_outp)
175#include "vectorize.inc"
179 IF (nit==1 .AND. fn(i) > -tolf)
THEN
183 scle2(i)=xn(i)/(one-fn(i)/fa(i))
184 IF (abs(fn(i)) < tolf)
THEN
186 scle2(i) =
min(one ,scle2(i))
187 scle2(i) =
max(zero,scle2(i))
200#include "vectorize.inc"
204 scle2(i) =
min(one,scle2(i))
205 scle2(i) =
max(zero,scle2(i))
210 scle1(i) = one-scle2(i)
211 s1(i) = s1(i) - scle2(i)*ds1(i)
212 s2(i) = s2(i) - scle2(i)*ds2(i)
213 s3(i) = s3(i) - scle2(i)*ds3(i)
214 s4(i) = s4(i) - scle2(i)*ds4(i)
215 s5(i) = s5(i) - scle2(i)*ds5(i)
216 s6(i) = s6(i) - scle2(i)*ds6(i)
217 sm(i) = sm(i) - scle2(i)*dsm(i)
subroutine crit24(nel, pm, sig, vk0, vk, off, rob, ngl, seq, s01, s02, s03, s04, s05, s06, s1, s2, s3, s4, s5, s6, scal1, scal2, scal3, scle1, scle2, scle3, sm, dsm)
subroutine frv(s1, s2, s3, s4, s5, s6, sm, vk0, vk, rob, fc, rt, rc, rct1, rct2, aa, ac, bc, bt, rok, tol, fa, nindex, index, ibug, nel, seq, icrit_outp)