25!||--- calls -----------------------------------------------------
32 1 IRBE2 ,LRBE2 ,NODXI_SMS,JAD_SMS,JDI_SMS,LT_SMS,
33 2 NMRBE2,MS,DIAG_SMS,PREC_SMS3,IAD_RBE2,FR_RBE2M,
38#include "implicit_f.inc"
49 INTEGER IRBE2(NRBE2L,*),LRBE2(*),NODXI_SMS(*),
50 . JAD_SMS(*),JDI_SMS(*),NMRBE2, IAD_RBE2(*),
51 . FR_RBE2M(*), WEIGHT(*)
54 . lt_sms(*), ms(*), diag_sms(*), prec_sms3(3,*), skew(lskew,*)
58 INTEGER K, N, ISK, I, J, , JT(3,NRBE2),JR(3,NRBE2),
59 . IAD, NS, NSN, MID, NHI, IRAD, IJ, NN, TAG(3,),
62 . diag_rbe2(3,numnod), dd
74 IF (irbe2(9,n)/=nhi) cycle
107 diag_rbe2(1,n)=diag_sms(n)
108 diag_rbe2(2,n)=diag_sms(n)
109 diag_rbe2(3,n)=diag_sms(n)
115 frbe2m6(1,k,n) = zero
116 frbe2m6(2,k,n) = zero
117 frbe2m6(3,k,n) = zero
121 IF (irbe2(9,n)/=nhi) cycle
126 mid = iabs(irbe2(6,n))
128 CALL sms_rbe_5(nsn ,lrbe2(iad+1),diag_rbe2,ms ,weight,
129 1 jt ,frbe2m6(1,1,mid),m ,irad ,isk ,
137 . frbe2m6 ,iad_rbe2,fr_rbe2m,iad_rbe2(nspmd+1),isize)
141#include "vectorize.inc"
143 IF (irbe2(9,n)/=nhi) cycle
151 dd = dd + frbe2m6(j,k,mid)
165 mid = iabs(irbe2(6,n))
167 IF(jt(1,n)+jt(2,n)+jt(3,n)/=0.AND.nodxi_sms(m)==0)
THEN
170 DO ij=jad_sms(ns),jad_sms(ns+1)-1
172 IF(tag(1,nn)==tag(1,ns))
173 . diag_rbe2(1,m)=
max(ms(m),diag_rbe2(1,m)+lt_sms(ij))
174 IF(tag(2,nn)==tag(2,ns))
175 . diag_rbe2(2,m)=
max(ms(m),diag_rbe2(2,m)+lt_sms(ij))
176 IF(tag(3,nn)==tag(3,ns
177 . diag_rbe2(3,m)=
max(ms(m),diag_rbe2(3,m)+lt_sms(ij))
189 IF(diag_rbe2(j,m)==zero)
THEN
192 prec_sms3(j,m)=one/diag_rbe2(j,m)
208 1 IRBE2 ,LRBE2 ,NODXI_SMS)
212#include "implicit_f.inc"
213#include "comlock.inc"
217#include "com04_c.inc"
218#include "param_c.inc"
222 INTEGER IRBE2(NRBE2L,*),LRBE2(*),NODXI_SMS(*)
227 INTEGER , N, ISK, I, J, M, (3,NRBE2),JR(3,NRBE2),
228 . IAD, NS, NSN, MID, NHI, IRAD
230 CALL PRERBE2(IRBE2 ,JT ,JR )
234 IF (irbe2(9,n)/=nhi) cycle
239 mid = iabs(irbe2(6,n))
241 IF(jt(1,n)+jt(2,n)+jt(3,n)/=0.AND.nodxi_sms
THEN
244 IF(nodxi_sms(ns)/=0)
THEN
256!||====================================================================
271 1 IRBE2 ,LRBE2 ,X ,A ,AR ,
272 1 MS ,IN ,SKEW ,WEIGHT ,IAD_RBE2,
277#include "implicit_f.inc"
278#include "comlock.inc"
282#include "com01_c.inc"
283#include "com04_c.inc"
284#include "param_c.inc"
288 INTEGER IRBE2(NRBE2L,*),LRBE2(*),WEIGHT(*),IAD_RBE2(*),
289 . FR_RBE2M(*) ,NMRBE2
292 . X(3,*), A(3,*), AR(3,*), MS(*), IN(*),
297 INTEGER K, N, ISK, I, J, M, , JT(3,NRBE2),JR(3,NRBE2),
298 . iad, ns, icom, nsn, mid, nhi, irad
300 . frbe2m6(3,6,nmrbe2)
303 icom = iad_rbe2(nspmd+1)-iad_rbe2(1)
310 frbe2m6(j,k,n) = zero
315 IF (irbe2(9,n)/=nhi) cycle
320 mid = iabs(irbe2(6,n))
322 CALL sms_rbe_1(nsn ,lrbe2(iad+1),x ,a ,ar ,
323 1 ms ,in ,weight,jt(1,n),frbe2m6(1,1,mid),
324 2 m ,irad ,isk ,skew )
330 . frbe2m6 ,iad_rbe2,fr_rbe2m,iad_rbe2(nspmd+1),isize)
336 CALL sms_rbe2_s(irbe2 ,isize,a ,weight ,frbe2m6,
349 CALL sms_rbe_2(nsn ,lrbe2(iad+1),x ,a ,ar ,
350 1 jt(1,n),m ,irad ,isk ,skew )
365 1 IRBE2 ,LRBE2 ,R ,A ,PREC_SMS3,
366 1 SKEW ,WEIGHT ,IAD_RBE2 ,FR_RBE2M,NMRBE2)
370#include "implicit_f.inc"
371#include "comlock.inc"
375#include "com04_c.inc"
376#include "param_c.inc"
380 INTEGER IRBE2(NRBE2L,*),LRBE2(*),WEIGHT(*),IAD_RBE2(*),
381 . FR_RBE2M(*) ,NMRBE2
384 . R(3,*), (3,*), PREC_SMS3(*), SKEW(LSKEW,*)
388 INTEGER K, N, ISK, I, J, M, ISIZE, JT(3,NRBE2),JR(3,NRBE2),
389 . iad, ns, icom, nsn, mid, nhi, irad
399 CALL sms_rbe_3(nsn ,lrbe2(iad+1),r ,a ,prec_sms3,
400 1 jt(1,n),m ,irad ,isk ,skew )
416 1 IRBE2 ,LRBE2 ,V ,W ,MS ,
417 1 SKEW ,WEIGHT ,IAD_RBE2,FR_RBE2M,NMRBE2)
421#include "implicit_f.inc"
422#include "comlock.inc"
426#include "com04_c.inc"
427#include "param_c.inc"
431 INTEGER IRBE2(NRBE2L,*),LRBE2(*),WEIGHT(*),IAD_RBE2(*),
432 . FR_RBE2M(*) ,NMRBE2
435 . (3,*), W(3,*), MS(*), SKEW(LSKEW,*)
439 INTEGER K, , ISK, I, J, , ISIZE, JT(3,NRBE2),JR(3,NRBE2),
440 . IAD, NS, ICOM, NSN, , NHI, IRAD
450 CALL sms_rbe_4(nsn ,lrbe2(iad+1),v ,w ,ms ,
451 1 jt(1,n),m ,irad ,isk ,skew )
461!||--- calls -----------------------------------------------------
462!||
prerbe2 ../engine/source/constraints/general/rbe2/
rbe2f.f
468 1 IRBE2 ,LRBE2 ,DIAG_SMS ,MS ,DIAG_SMS3,
469 1 SKEW ,WEIGHT ,IAD_RBE2 ,FR_RBE2M,NMRBE2)
473#include "implicit_f.inc"
474#include "comlock.inc"
478#include "com01_c.inc"
479#include "com04_c.inc"
480#include "param_c.inc"
484 INTEGER(*),IAD_RBE2(*),
485 . FR_RBE2M(*) ,NMRBE2
488 . DIAG_SMS(*), MS(*), DIAG_SMS3(3,*), SKEW(LSKEW,*)
492 INTEGER K, N, ISK, I, J, M, ISIZE, JT(3,NRBE2),JR(3,NRBE2),
493 . IAD, NS, ICOM, NSN, MID, NHI, IRAD
497 . frbe2m6(3,6,nmrbe2)
500 icom = iad_rbe2(nspmd+1)-iad_rbe2(1)
506 frbe2m6(1,k,n) = zero
507 frbe2m6(2,k,n) = zero
508 frbe2m6(3,k,n) = zero
512 IF (irbe2(9,n)/=nhi) cycle
517 mid = iabs(irbe2(6,n))
519 CALL sms_rbe_5(nsn ,lrbe2(iad+1),diag_sms3,ms ,weight,
520 1 jt ,frbe2m6(1,1,mid),m ,irad ,isk ,
528 . frbe2m6 ,iad_rbe2,fr_rbe2m,iad_rbe2(nspmd+1),isize)
532#include "vectorize.inc"
534 IF (irbe2(9,n)/=nhi) cycle
542 dd = dd + frbe2m6(j,k,mid)
562 1 MS ,IN ,WEIGHT,JT ,FS6 ,
563 2 M ,IRAD ,ISK ,SKEW )
567#include "implicit_f.inc"
571#include "param_c.inc"
575 INTEGER ,ISL(*),(*),JT(3),M,IRAD,ISK
578 . x(3,*), a(3,*), ar(3,*), ms(*), in(*), skew(lskew,*)
584 INTEGER I, J, N, K, IJT, (3), IC
587 . F1(NSL), F2(NSL), F3(NSL), RX, RY, RZ, CDT(9)
589 IF ((JT(1)+JT(2)+JT(3))>0) THEN
606 IF(weight(n)==1)
THEN
618 ic = jt(1)*100+jt(2)*10+jt(3)
619 CALL cdi_bcn(ic ,skew(1,isk) ,jt ,cdt ,jt1 )
622 rx = a(1,n)*weight(n)
623 ry = a(2,n)*weight(n)
624 rz = a(3,n)*weight(n)
625 f1(i) = cdt(1)*rx+cdt(2)*ry+cdt(3)*rz
626 f2(i) = cdt(4)*rx+cdt(5)*ry+cdt(6)*rz
627 f3(i) = cdt(7)*rx+cdt(8)*ry+cdt(9)*rz
646 1 JT ,M ,IRAD ,ISK ,SKEW )
650#include "implicit_f.inc"
654#include "param_c.inc"
658 INTEGER NSL, ISL(*), JT(3), M, IRAD, ISK
661 . x(3,*), a(3,*), ar(3,*), skew(lskew,*)
670 IF ((JT(1)+JT(2)+JT(3))>0) THEN
693 aax =jt(1)*(skew(1,isk)*a(1,n)+skew(2,isk)*a(2,n)+skew(3,isk)*a(3,n))
694 aay =jt(2)*(skew(4,isk)*a(1,n)+skew(5,isk)*a(2,n)+skew(6,isk)*a(3,n))
695 aaz =jt(3)*(skew(7,isk)*a(1,n)+skew(8,isk)*a(2,n)+skew(9,isk)*a(3,n))
696 a(1,n) =a(1,n)-aax*skew(1,isk)-aay*skew(4,isk)-aaz*skew(7,isk
697 a(2,n) =a(2,n)-aax*skew(
698 a(3,n) =a(3,n)-aax*skew(3,isk)-aay*skew(6,isk)-aaz*skew(9,isk)
711 1 JT ,M ,IRAD ,ISK ,SKEW )
715#include "implicit_f.inc"
719#include "param_c.inc"
723 INTEGER NSL,ISL(*),JT(3),M,IRAD, ISK
726 . R(3,*), A(3,*), SKEW(LSKEW,*), PREC_SMS3(3,*)
733 . AAX, , AAZ, DAX, DAY,
735 IF ((JT(1)+JT(2)+JT(3))>0) THEN
744 IF(jt(3)>0)a(3,m)=r(3,m)*prec_sms3(3,m)
745 IF(jt(2)>0)a(2,m)=r(2,m)*prec_sms3(2,m)
746 IF(jt(1)>0)a(1,m)=r(1,m)*prec_sms3(1,m)
765 aax =jt(1)*(skew(1,isk)*dax+skew(2,isk)*day+skew(3,isk)*daz)
766 aay =jt(2)*(skew(4,isk)*dax+skew(5,isk)*day+skew(6,isk)*daz)
767 aaz =jt(3)*(skew(7,isk)*dax+skew(8,isk)*day+skew(9,isk)*daz)
768 a(1,n) =a(1,n)-aax*skew(1,isk)-aay*skew(4,isk)-aaz*skew(7,isk)
769 a(2,n) =a(2,n)-aax*skew(2,isk)-aay*skew(5,isk)-aaz*skew(8,isk)
770 a(3,n) =a(3,n)-aax*skew(3,isk)-aay*skew(6,isk)-aaz*skew(9,isk)
784 1 JT ,M ,IRAD ,ISK ,SKEW )
788#include "implicit_f.inc"
792#include "param_c.inc"
796 INTEGER NSL,ISL(*),JT(3),M,IRAD, ISK
799 . V(3,*), W(3,*), MS(*), SKEW(LSKEW,*)
806 . AAX, AAY, AAZ, DAX, DAY, DAZ
808 IF ((JT(1)+JT(2)+JT(3))>0) THEN
819 w(3,n) =w(3,n)-ms(n)*v(3,n)
822 w(2,n) =w(2,n)-ms(n)*v(2,n)
825 w(1,n) =w(1,n)-ms(n)*v(1,n)
834 aax =jt(1)*(skew(1,isk)*dax+skew(2,isk)*day+skew(3,isk)*daz)
835 aay =jt(2)*(skew(4,isk)*dax+skew(5,isk)*day+skew(6,isk)*daz)
836 aaz =jt(3)*(skew(7,isk)*dax+skew(8,isk)*day+skew(9,isk)*daz)
837 w(1,n) =w(1,n)-aax*skew(1,isk)-aay*skew(4,isk)-aaz*skew(7,isk)
838 w(2,n) =w(2,n)-aax*skew(2,isk)-aay*skew(5,isk)-aaz*skew(8,isk)
839 w(3,n) =w(3,n)-aax*skew(3,isk)-aay*skew(6,isk)-aaz*skew(9,isk)
856 1 JT ,FS6 ,M ,IRAD ,ISK ,
861#include "implicit_f.inc"
865#include "param_c.inc"
869 INTEGER NSL,ISL(*),WEIGHT(*),JT(3),M,IRAD, ISK
872 . DIAG_SMS3(3,*), MS(*), SKEW(LSKEW,*)
878 INTEGER I, J, N, K, IJT, JT1(3), IC
881 . F1(), F2(NSL), F3(NSL), RX, RY, RZ, CDT(9)
883 IF ((JT(1)+JT(2)+JT(3))>0) THEN
900 IF(weight(n)==1)
THEN
901 f1(i)=jt(1)*(diag_sms3(1,n)-ms(n))
902 f2(i)=jt(2)*(diag_sms3(2,n)-ms(n))
903 f3(i)=jt(3)*(diag_sms3(3,n)-ms(n))
912 ic = jt(1)*100+jt(2)*10+jt(3)
913 CALL cdi_bcn(ic ,skew(1,isk) ,jt ,cdt ,jt1 )
916 rx = (diag_sms3(1,n)-ms(n))*weight(n)
917 ry = (diag_sms3(2,n)-ms(n))*weight(n)
918 rz = (diag_sms3(3,n)-ms(n))*weight(n)
919 f1(i) = cdt(1)*rx+cdt(2)*ry+cdt(3)*rz
920 f2(i) = cdt(4)*rx+cdt(5)*ry+cdt(6)*rz
921 f3(i) = cdt(7)*rx+cdt(8)*ry+cdt(9)*rz
945#include "implicit_f.inc"
949#include "com04_c.inc"
950#include "param_c.inc"
954 INTEGER IRBE2(NRBE2L,*),ISIZE, WEIGHT(*),NMRBE2,IH
956 DOUBLE PRECISION F6(ISIZE,6,*)
960 INTEGER I, J, K, N, NS ,NML, IAD,JJ,M,MID,IROT,IRAD
962#include "vectorize.inc"
964 IF (ih/=irbe2(9,n)) cycle
971 a(j,m) = a(j,m)+ f6(j,k,mid)
subroutine prerbe2(irbe2, jt, jr)
subroutine sum_6_float(jft, jlt, f, f6, n)
subroutine cdi_bcn(ict, skew, jt, kt, jt1)
subroutine rbe2f(nsl, isl, x, a, ar, ms, in, weight, jt, jr, f6, m6, stifn, stifr, stif6, stir6, m, irad)
subroutine sms_rbe_cnds(irbe2, lrbe2, x, a, ar, ms, in, skew, weight, iad_rbe2, fr_rbe2m, nmrbe2)
subroutine sms_rbe2_s(irbe2, isize, a, weight, f6, nmrbe2, ih)
subroutine sms_rbe_5(nsl, isl, diag_sms3, ms, weight, jt, fs6, m, irad, isk, skew)
subroutine sms_rbe_2(nsl, isl, x, a, ar, jt, m, irad, isk, skew)
subroutine sms_rbe_accl(irbe2, lrbe2, r, a, prec_sms3, skew, weight, iad_rbe2, fr_rbe2m, nmrbe2)
subroutine sms_diag_rbe2(irbe2, lrbe2, nodxi_sms, jad_sms, jdi_sms, lt_sms, nmrbe2, ms, diag_sms, prec_sms3, iad_rbe2, fr_rbe2m, weight, skew)
subroutine sms_rbe_4(nsl, isl, v, w, ms, jt, m, irad, isk, skew)
subroutine sms_rbe_1(nsl, isl, x, a, ar, ms, in, weight, jt, fs6, m, irad, isk, skew)
subroutine sms_rbe_prec(irbe2, lrbe2, diag_sms, ms, diag_sms3, skew, weight, iad_rbe2, fr_rbe2m, nmrbe2)
subroutine sms_rbe_3(nsl, isl, r, a, prec_sms3, jt, m, irad, isk, skew)
subroutine sms_rbe_corr(irbe2, lrbe2, v, w, ms, skew, weight, iad_rbe2, fr_rbe2m, nmrbe2)
subroutine sms_rbe2_nodxi(irbe2, lrbe2, nodxi_sms)
subroutine spmd_exch_rbe2_sms(a, iad_m, fr_m, lcomm, isize)