38
39
40
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "com01_c.inc"
50#include "com04_c.inc"
51#include "param_c.inc"
52
53
54
55 INTEGER WEIGHT(*),LPBY(*),NPBY(NNPBY,*),ISKEW(*),ITAB(*),
56 . KIND(NRBYKIN),IRBKIN_L(*),NRBYKIN_L,NODREAC(*)
57
59 . rby(nrby,*) ,x(3,*) ,v(3,*) ,vr(3,*),skew(*),
60 . fsav(nthvki,*) ,a(3,*),ar(3,*),in(*),ms(*),fthreac(*),freac(*)
61
62
63
64 INTEGER J,K,N,KK,IFAIL,ICOMM
66 . fn, ft,expn,expt
67 my_real,
DIMENSION(:),
ALLOCATABLE ::
68 . crit
69
70 SAVE crit
71
72
73 IF(nrbfail /= 0 .AND. nspmd > 1)THEN
74 ALLOCATE(crit(nrbykin))
75 crit(1:nrbykin) = zero
76 ELSE
77 ALLOCATE(crit(0))
78 END IF
79
80
81
82
83
84
85
86 DO kk=1,nrbykin_l
87 n=irbkin_l(kk)
88 k = kind(n)
89 IF(npby(7,n)>0.AND.npby(4,n)/=0)THEN
90 j = ninter+nrwall+n
91 ifail = npby(18,n)
92 fn = rby(26,n)
93 ft = rby(27,n)
94 expn = rby(28,n)
95 expt = rby(29,n)
96
97 CALL rgbodv(v ,vr ,x ,rby(1,n) ,lpby(k),
98 2 npby(1,n),skew ,iskew ,fsav(1,j) ,itab ,
99 3 weight ,a ,ar ,ms ,in ,
100 4 npby(4,n),npby(6,n) ,ifail ,fn ,expn ,
101 5 ft ,expt ,rby(30,n),nodreac,fthreac ,
102 6 freac )
103
104 IF(nrbfail /= 0 .AND. nspmd > 1) crit(n)= rby(30,n)
105
106 ENDIF
107 ENDDO
108
109
110
111
112
113
114
115
116
117 DO kk=1,nrbykin_l
118 n=irbkin_l(kk)
119 k = kind(n)
120 IF(npby(7,n)>0.AND.npby(4,n)==0)THEN
121 j = ninter+nrwall+n
122 ifail = npby(18,n)
123 fn = rby(26,n)
124 ft = rby(27,n)
125 expn = rby(28,n)
126 expt = rby(29,n)
127
128 CALL rgbodv(v ,vr ,x ,rby(1,n) ,lpby(k),
129 2 npby(1,n),skew ,iskew ,fsav(1,j) ,itab ,
130 3 weight ,a ,ar ,ms ,in ,
131 4 npby(4,n),npby(6,n) ,ifail ,fn ,expn ,
132 5 ft ,expt ,rby(30,n),nodreac,fthreac ,
133 6 freac )
134
135 IF(nrbfail /= 0 .AND. nspmd > 1) crit(n)= rby(30,n)
136
137 ENDIF
138 ENDDO
139
140
141
142
143 IF(nrbfail /= 0 .AND. nspmd > 1)THEN
145 DO n=1,nrbykin
146 rby(30,n) = crit(n)
147 ENDDO
148 END IF
149 DEALLOCATE(crit)
150
151
152 RETURN
subroutine rgbodv(v, vr, x, rby, nod, nby, skew, iskew, fs, itab, weight, a, ar, ms, in, isens, id, ifail, fny, expn, fty, expt, crit, nodreac, fthreac, freac)
subroutine spmd_all_dmax(v, len)