34 1 IRBE3 ,LRBE3 ,NODXI_SMS,IAD_M ,FR_M )
38#include "implicit_f.inc"
49 INTEGER IRBE3(NRBE3L,*),LRBE3(*),NODXI_SMS(*), IAD_M(*), FR_M(*)
54 INTEGER N, I, M, JT(3,NRBE3), JR(3,NRBE3), IAD, NS, NML, FIN,
55 . finfin, icom, irotg, max_m
57 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
58 icom = iad_m(nspmd+1)-iad_m(1)
76 IF(jt(1,n)+jt(2,n)+jt(3,n)/=0)
THEN
79 IF(nodxi_sms(ns)/=0.AND.nodxi_sms(m)==0)
THEN
90 1 nodxi_sms,fr_m ,iad_m ,iad_m(nspmd+1) )
102 IF(jt(1,n)+jt(2,n)+jt(3,n)/=0)
THEN
105 IF(nodxi_sms(m)/=0.AND.nodxi_sms(ns)==0)
THEN
124!||====================================================================
140 1 IRBE3 ,LRBE3 ,X ,A ,FRBE3 ,
141 2 SKEW ,WEIGHT ,IAD_M ,FR_M ,FR_MPON,
142 3 RSUM ,RSUM_PON ,R3SIZE)
146#include "implicit_f.inc"
150#include "com01_c.inc"
151#include "com04_c.inc"
152#include "param_c.inc"
153#include "tabsiz_c.inc"
157 INTEGER IRBE3(NRBE3L,*), LRBE3(*), WEIGHT(*), IAD_M(*), FR_M(*),
160 . X(3,*), A(3,*), FRBE3(*), SKEW(*), RSUM(*)
166 INTEGER I, J, N, MAX_M,IROTG,JT(3,NRBE3),JR(3,NRBE3),IERR,NMT,
167 . IADA,IADMS,IADFN,IADAR,IADIN,IADFR,IADM0,IADI0,IADL,
168 . IPA,IPMS,IPFN,IPAR,IPIN,IPFR,NMP,IADLP,,NML,,
169 . IADLP1,IADM1,IADI1,NMT0,IADMP(SLRBE3/2),IML(SLRBE3/2),
179 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
180 icom = iad_m(nspmd+1)-iad_m(1)
182 IF (r3size>5)irotg = 1
185 CALL prerbe3p(irbe3 ,lrbe3 ,iadmp ,iml , nmt )
201 CALL zero1(rsum,iadl)
203 1 irbe3 ,lrbe3 ,x ,a ,frbe3 ,
204 2 skew ,weight,jt ,irotg ,max_m ,
205 3 rsum(iada),nmt0 ,iadmp )
228 . rsum_pon(ipa),fr_mpon,iad_m ,iad_m(nspmd+1),isize)
233 CALL sms_rbe3_2(irbe3 ,lrbe3 ,a ,weight,rsum_pon(ipa),
253 2 SKEW ,R ,PREC_SMS3)
257#include "implicit_f.inc"
261#include "com01_c.inc"
262#include "com04_c.inc"
263#include "param_c.inc"
264#include "tabsiz_c.inc"
268 INTEGER IRBE3(NRBE3L,*),LRBE3(*)
271 . X(3,*), A(3,*), FRBE3(*), SKEW(*), R(3,*), PREC_SMS3(3,*)
275 INTEGER I, J, N, M, NS ,NML, IAD,JJ,IROT,IADS,MAX_M,IROTG,
276 . JT(3,NRBE3),JR(3,NRBE3),NM,NN,K,
277 . NMT,NMT0,IADMP(SLRBE3/2),IML(SLRBE3/2)
282 .
DIMENSION(:,:,:),
ALLOCATABLE :: fdstnb ,mdstnb
285 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
286 ALLOCATE(fdstnb(3,6,max_m))
287 IF (irotg>0)
ALLOCATE(mdstnb(3,6,max_m))
291 CALL prerbe3p(irbe3 ,lrbe3 ,iadmp ,iml , nmt )
294 a(1,m)=r(1,m)*prec_sms3(1,m)
295 a(2,m)=r(2,m)*prec_sms3(2,m)
296 a(3,m)=r(3,m)*prec_sms3(3,m)
305 irot =
min(irbe3(6,n),iroddl)
306 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
307 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
308 . mdstnb ,irbe3(2,n))
316 as(j) = as(j)+fdstnb(k,j,i)*a(k,m)
321 a(j,ns) = as(j) *jt(j,n)
326 IF (irotg>0)
DEALLOCATE(mdstnb)
339!||
prerbe3p ../engine/source/constraints/general/rbe3/
rbe3f.f
346 1 IRBE3 ,LRBE3 ,X ,DIAG_SMS,DIAG_SMS3,
347 2 FRBE3 ,SKEW ,WEIGHT ,IAD_M ,FR_M ,
348 3 FR_MPON,RSUM ,RSUM_PON ,R3SIZE)
352#include "implicit_f.inc"
356#include
"com01_c.inc"
357#include "com04_c.inc"
358#include "param_c.inc"
359#include "tabsiz_c.inc"
363 INTEGER IRBE3(NRBE3L,*), LRBE3(*), WEIGHT(*), IAD_M(*), FR_M(*),
367 . X(3,*), DIAG_SMS(*), DIAG_SMS3(*), FRBE3(*), SKEW(*), RSUM(*)
373 INTEGER I, J, N, MAX_M,IROTG,JT(3,NRBE3),JR(3,NRBE3),IERR,NMT,
374 . iada,iadms,iadfn,iadar,iadin,iadfr,iadm0,iadi0,iadl,
375 . ipa,ipms,ipfn,ipar,ipin,ipfr,nmp,iadlp,ns,nml,icom,
376 . iadlp1,iadm1,iadi1,nmt0,iadmp(slrbe3/2),iml(slrbe3/2),
386 CALL prerbe3(irbe3 ,max_m , irotg,jt ,jr )
387 icom = iad_m(nspmd+1)-iad_m(1)
389 IF (r3size>5)irotg = 1
392 CALL prerbe3p(irbe3 ,lrbe3 ,iadmp ,iml , nmt )
408 CALL zero1(rsum,iadl)
410 1 irbe3 ,lrbe3 ,x ,diag_sms3,frbe3 ,
411 2 skew ,weight,jt ,irotg ,max_m ,
412 3 rsum(iada),nmt0 ,iadmp )
435 . rsum_pon(ipa),fr_mpon,iad_m ,iad_m(nspmd+1),isize)
440 CALL sms_rbe3_3(irbe3 ,lrbe3 ,diag_sms3,weight,rsum_pon(ipa),
460 1 IRBE3 ,LRBE3 ,X ,A ,FRBE3 ,
461 2 SKEW ,WEIGHT,JT ,IROTG ,MAX_M ,
466#include "implicit_f.inc"
470#include "com04_c.inc"
471#include "param_c.inc"
475 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*)
476 INTEGER MAX_M,IROTG,JT(3,*),NMT0,IADMP(*)
479 . X(3,*), A(3,*), FRBE3(*),SKEW(*), AM(3,*)
483 INTEGER I, J, N, NS ,NML, IAD, IROT, IADS, NN, K
489 .
DIMENSION(:,:,:),
ALLOCATABLE :: fdstnb ,mdstnb
492 ALLOCATE(fdstnb(3,6,max_m))
493 IF (irotg>0)
ALLOCATE(mdstnb(3,6,max_m))
501 CALL rbe3cl(lrbe3(iad+1),lrbe3(iads+iad+1),ns ,x ,
502 . frbe3(6*iad+1),skew ,nml ,irot ,fdstnb ,
503 . mdstnb ,irbe3(2,n))
506 nn = jt(j,n)*weight(ns)
510 CALL mfac_rbe3(fdstnb,mdstnb,nml ,irotg,sfd ,smd)
514 am(1,k) = am(1,k)+fdstnb(1,j,i)*fns(j)
515 am(2,k) = am(2,k)+fdstnb(2,j,i)*fns(j)
516 am(3,k) = am(3,k)+fdstnb(3,j,i)*fns(j)
520 END IF !
IF (ns>0)
THEN
524 IF (irotg>0)
DEALLOCATE(mdstnb)
529!||====================================================================
539#include "implicit_f.inc"
543#include "com04_c.inc"
544#include "param_c.inc"
548 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*),IML(*) ,NMT,
558 INTEGER I, J, M, N, NS
563#include "vectorize.inc"
584 IF(jt(j,n)/=0)a(j,ns)=zero
592!||====================================================================
602#include "implicit_f.inc"
606#include "com04_c.inc"
607#include "param_c.inc"
611 INTEGER IRBE3(NRBE3L,*),LRBE3(*),WEIGHT(*),IML(*) ,NMT, JT(3,NRBE3)
612 my_real DIAG_SMS3(3,*)
613 DOUBLE PRECISION DA(6,3,*)
617 INTEGER I, , K, M, N, NS
622#include
"vectorize.inc"
subroutine spmd_max_ii(nmax, iad_elem, tsize)
subroutine rbe3cl(inrbe3, ilrbe3, ns, xyz, frbe3, skew, ng, irot, fdstnb, mdstnb)
subroutine prerbe3(irbe3, max_m, irotg, jt, jr)
subroutine foat_to_6_float(jft, jlt, f, f6)
subroutine prerbe3p(irbe3, lrbe3, ad_m, iml, nmt)
subroutine rbe3f(irbe3, lrbe3, x, a, ar, ms, in, frbe3, skew, weight, stifn, stifr, jt, jr, irotg, max_m, am, arm, msm, inm, stifnm, stifrm, nmt0, iadmp, pen, v, vr, nmt, dt1, iroddl)
subroutine mfac_rbe3(fdstnb, mdstnb, nml, irot, sf, sm)
subroutine sms_pcg(timers, nodft, nodlt, nnz, iadk, jdik, diag_sms, lt_k, r, isp, x_sms, p_sms, z_sms, y_sms, prec_sms, nodft1_sms, nodlt1_sms, indx1_sms, icodt, icodr, iskew, skew, itask, nodnx_sms, iad_elem, fr_elem, weight, ibfv, vel, npc, tf, v, x, d, sensor_tab, iframe, xframe, jadi_sms, jdii_sms, nsensor, lti_sms, fr_sms, fr_rms, list_sms, list_rms, mskyi_fi_sms, vfi, iskyi_sms, mskyi_sms, res_sms, ilink, llink, fr_rl, frl6, nnlink, lnlink, fr_ll, fnl6, ms, tag_lnk_sms, itab, fsav, ljoint, iadcj, fr_cj, cjwork, frl, fnl, nprw, lprw, rwbuf, rwsav, fopt, fr_wall, irwl_work, nrwl_sms, frea, intstamp, imv, mv, mv6, mw6, kinet, ixc, ixtg, sh4tree, sh3tree, cptreac, nodreac, fthreac, frwl6, am, vr, dr, in, rby, npby, lpby, tagmsr_rby_sms, irbe2, lrbe2, iad_rbe2, fr_rbe2m, nmrbe2, r2size, irbe3, lrbe3, frbe3, iad_rbe3m, fr_rbe3m, fr_rbe3mp, rrbe3, rrbe3_pon, prec_sms3, diag_sms3, iad_rby, fr_rby6, rby6, tagslv_rby_sms, r3size, nodft2_sms, nodlt2_sms, indx2_sms, nodii_sms, ibcscyc, lbcscyc, wfext, ams_work)
subroutine sms_rbe3_nodxi(irbe3, lrbe3, nodxi_sms, iad_m, fr_m)
subroutine sms_rbe3t2(irbe3, lrbe3, x, a, frbe3, skew, r, prec_sms3)
subroutine sms_rbe3_3(irbe3, lrbe3, diag_sms3, weight, da, nmt, iml, jt)
subroutine sms_rbe3_prec(irbe3, lrbe3, x, diag_sms, diag_sms3, frbe3, skew, weight, iad_m, fr_m, fr_mpon, rsum, rsum_pon, r3size)
subroutine sms_rbe3t1(irbe3, lrbe3, x, a, frbe3, skew, weight, iad_m, fr_m, fr_mpon, rsum, rsum_pon, r3size)
subroutine sms_rbe3_1(irbe3, lrbe3, x, a, frbe3, skew, weight, jt, irotg, max_m, am, nmt0, iadmp)
subroutine sms_rbe3_2(irbe3, lrbe3, a, weight, da, nmt, iml, jt)
subroutine spmd_exch_rbe3_a_pon(a, fr_m, iad_m, lcomm, isize)
subroutine spmd_exch_rbe3_nodnx(nodnx_sms, fr_m, iad_m, lcomm)