28 SUBROUTINE frv(S1,S2,S3,S4,S5,S6,
29 . SM,VK0,VK,ROB,FC,RT,RC,
30 . RCT1,RCT2,AA,AC,BC,BT,
31 . ROK,TOL,FA,NINDEX,INDEX,IBUG,
36#include "implicit_f.inc"
40 INTEGER NINDEX, INDEX(NEL),ICRIT_OUTP
41 my_real :: FC,RT,RC,RCT1,RCT2,AA,AC,BC,BT,TOL
42 my_real,
DIMENSION(NEL) :: S1,S2,S3,ROK,FA,SEQ
43 my_real,
DIMENSION(NEL),
INTENT(OUT):: VK
47 INTEGER I, N, NEL, IBUG
48 my_real BB, DF, RF, R2, AJ3, CS3T
50#include
"vectorize.inc"
54 IF (sm(i) >= rt-tol )
THEN
56 ELSEIF( sm(i) > rc )
THEN
57 vk(i) = one+(one-vk0(i))*(rct1-two*rc*sm(i)+sm(i)**2)/rct2
58 ELSEIF(sm(i) > rok(i))
THEN
61 vk(i) = vk0(i)*(one - ((sm(i)-rok(i))/(rob(i)-rok(i)))**2)
64 IF (sm(i) > ac/aa)
THEN
65 fa(i) = half*(sm(i)-ac/aa) /
min(bc,bt)/fc
66 ELSEIF (sm(i) <= rob(i))
THEN
68 df = sqrt(bb*bb-aa*rob(i)+ac)
70 fa(i) = two*rf*(sm(i)-rob(i))/(rob(i)-rok(i))/fc
72 r2 = (s1(i)**2+s2(i)**2+s3(i)**2)+ two*s4(i)**2+two*s5(i)**2
75 aj3 = s1(i)*s2(i)*s3(i)-s1(i)*s5(i)*s5(i)-s2(i)*s6(i)*s6(i)
76 . - s3(i)*s4(i)*s4(i) + two*s4(i)*s5(i)*s6(i)
78 aj3 = s1(i)*s2(i)*s3(i)-s1(i)*s5(i)*s5(i)-s2(i)*s6(i)*s6(i)
82 cs3t = half * aj3*(three/(half*
max(r2,em20)))**three_half
85 bb = half*((one -cs3t)*bc+(one +cs3t)*bt)
86 df = sqrt(
max(zero,bb*bb-aa*sm(i)+ac,zero))
88 fa(i)=(sqrt(r2)-vk(i)*rf)/fc
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)