34 SUBROUTINE fv_imp0(IDDL ,IFIX ,NDOF ,IADK ,JDIK ,
35 1 DIAG_K ,LT_K ,UD ,NBK ,IAB ,
44#include "implicit_f.inc"
55 . iddl(*),iadk(*),jdik(*),ndof(*),
56 . nbk(*),iab(nfxvel,*) ,nddl ,ifix(*)
59 . ud(3,*), diag_k(*),lt_k(*),bk(nfxvel,*),rd(3,*)
63 INTEGER N, I, J, K,I1,J1,ND,ID,IDUD(NFXVEL),
79 ELSEIF (ifix(id)==2.OR.ifix(id)==9)
THEN
87 ELSEIF (ifix(id)==2.OR.ifix(id)==9)
THEN
106 DO j1 = iadk(id),iadk(id+1)-1
108 IF (ifix(jd)==0.AND.lt_k(j1)/=zero)
THEN
111 bk(i1,nd)=u(i1)*lt_k(j1)
125 DO k = iadk(i),iadk(i+1)-1
127 IF (id==j.AND.lt_k(k)/=zero)
THEN
130 bk(i1,nd)=u(i1)*lt_k(k)
138 CALL ancmsg(msgid=103,anmode=aninfo,
139 . i1=nd,i2=maxb,i3=i1)
162#include "implicit_f.inc"
166#include "com04_c.inc"
171 . nbk(*),iab(nfxvel,*)
178 INTEGER N, I, J, K,I1,J1,K1,ND,ID
191 b(id)=b(id)-bkud_1(j)
197!||
fv_imp ../engine/source/constraints/general/impvel/
fv_imp0.f
209 SUBROUTINE fv_imp(IBFV ,NPC ,TF ,VEL ,SENSOR_TAB,
210 1 UD ,RD ,IFIX ,IDDL ,NSENSOR ,
211 2 SKEW ,IFRAME,XFRAME,V ,VR ,
212 3 X ,LJ ,NDOF ,A ,AR )
220#include "implicit_f.inc"
221#include "mvsiz_p.inc"
225#include "com01_c.inc"
226#include "com04_c.inc"
227#include "com08_c.inc"
228#include "param_c.inc"
232 INTEGER ,
INTENT(IN) :: NSENSOR
233 INTEGER NPC(*),IBFV(NIFV,*),
234 . IFIX(*),IDDL(*),IFRAME(LISKN,*),LJ(*),NDDL,
238 . tf(*), vel(lfxvelr,*), ud(3,*),
239 . skew(lskew,*),rd(3,*),v(3,*),vr(3,*),
240 . x(3,*),xframe(nxframe,*),a(3,*),ar(3,*)
241 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
245 INTEGER N, I, ISK, J, L, K1, K2, K3, ISENS,K,
246 . ii, ic, nn, ideb, nr, nsk, nfk, ifm, n0,
247 . ilenc(mvsiz), iposc(mvsiz), iadc(mvsiz),
248 . lc(mvsiz), index(mvsiz),i1,j1,nd,
id,j2,j3,
252 . fac, startt, stopt, ts,dydx,
253 . yc(mvsiz), tsc(mvsiz), dydxc(mvsiz),
254 . rx,ry,rz,vf,vfx,vfy,vfz,vl(nfxvel),
255 . tsc1(mvsiz),facx,a0,lms(3),vs(3),mrv(3),vv
264 IF (ibfv(8,nn)==1)
GOTO 100
267 DO 10 ii = 1,
min(nfxvel-ideb,nvsiz)
274 IF(ndof(i)==0)
GOTO 10
277 IF(ibfv(4,n)== sensor_tab(k)%SENS_ID) isens=k
282 ts = tt - sensor_tab(isens)%TSTART
288 tsc1(ic) = tsc(ic)-dt2
291 DO 20 ii = 1,
min(nfxvel-ideb,nvsiz)
298 IF(ndof(i)==0)
GOTO 20
302 tsc1(ic) = tsc(ic)-dt2
306 ideb = ideb +
min(nfxvel-ideb,nvsiz)
311 tsc(ii) = facx*tsc(ii)
312 tsc1(ii) = facx*tsc1(ii)
320 iadc(ii) = half * npc(l) + 1
321 ilenc(ii) = half * npc(l+1) - iadc(ii) - iposc(ii)
328 iposc(ii) = ibfv(5,n)
329 iadc(ii) = half * npc(l) + 1
330 ilenc(ii) = half * npc(l+1) - iadc(ii) - iposc(ii)
333 CALL dinteri(tf,iadc,iposc,ilenc,ic,tsc1,tsc,yc,lc)
336 ibfv(5,n) = iposc(ii)
338 yc(ii) = yc(ii) * fac
341 IF(ibfv(7,n)<2) yc(ii) = yc(ii) / facx
342 IF(ibfv(7,n)==0) yc(ii) = yc(ii) / facx
349 IF (ifm<=1) j=j-10*isk
350 IF (isk>1.OR.ifm>1)
THEN
355 IF(isk<=1.AND.ifm<=1)
THEN
364 a0 = skew(k1,isk)*a(1,i) +
365 . skew(k2,isk)*a(2,i) +
366 . skew(k3,isk)*a(3,i)
371 rx = x(1,i) - xframe(10,ifm)
372 ry = x(2,i) - xframe(11,ifm)
373 rz = x(3,i) - xframe(12,ifm)
377 mrv(1)=xframe(13,ifm)*dt2
378 mrv(2)=xframe(14,ifm)*dt2
379 mrv(3)=xframe(15,ifm)*dt2
381 vfx = xframe(31,ifm)*dt2+vs(1)
382 vfy = xframe(32,ifm)*dt2+vs(2)
383 vfz = xframe(33,ifm)*dt2+vs(3)
384 vf = xframe(k1,ifm)*vfx
385 . + xframe(k2,ifm)*vfy
386 . + xframe(k3,ifm)*vfz
388 a0 = xframe(k1,ifm)*a(1,i)
389 . + xframe(k2,ifm)*a(2,i)
390 . + xframe(k3,ifm)*a(3,i)
395 IF(isk<=1.AND.ifm<=1)
THEN
404 a0 = skew(k1,isk)*ar(1,i) +
405 . skew(k2,isk)*ar(2,i) +
406 . skew(k3,isk)*ar(3,i)
412 vf = xframe(k1,ifm)*xframe(13,ifm)
413 . + xframe(k2,ifm)*xframe(14,ifm)
414 . + xframe(k3,ifm)*xframe(15,ifm)
415 vl(n) = vl(n) + vf*dt2
416 a0 = xframe(k1,ifm)*ar(1,i)
417 . + xframe(k2,ifm)*ar(2,i)
418 . + xframe(k3,ifm)*ar(3,i)
429 1 iddl ,skew ,xframe,vl ,lj )
439 SUBROUTINE fv_impi(IDDL ,IFIX ,NDOF ,IADK ,JDIK ,
440 1 DIAG_K ,LT_K ,UD ,B ,NDDL )
444#include "implicit_f.inc"
448#include "com04_c.inc"
449#include "impl1_c.inc"
454 . iddl(*),ifix(*),iadk(*),jdik(*),ndof(*),nddl
457 . ud(3,*), diag_k(*),lt_k(*),b(*)
461 INTEGER N, I, J, K,I1,,K1,ND,ID,NF,NT
470 IF (ifix(id)==2.OR.ifix(id)==9)
THEN
479 DO j1 = iadk(i1),iadk(i1+1)-1
481 IF (k1==id ) b(i1)=b(i1)-lt_k(j1)*ud(j,i)
484 DO j1 = iadk(id),iadk(id+1)-1
486 b(k1)=b(k1)-lt_k(j1)*ud(j,i)
502 SUBROUTINE fv_rw(IDDL ,IKC ,NDOF ,UD ,V )
506#include "implicit_f.inc"
510#include "com04_c.inc"
511#include "com08_c.inc"
516 . iddl(*),ikc(*),ndof(*)
523 INTEGER N, I, J, K,I1,J1,K1,ND,ID
530 IF (ikc(id)==3) ud(j,i)=v(j,i)*dt2
538!||--- called by ------------------------------------------------------
544 SUBROUTINE fv_rw0(IDDL ,IFIX ,NDOF ,IADK ,JDIK ,
545 1 DIAG_K ,LT_K ,UD ,B )
549#include "implicit_f.inc"
553#include "com04_c.inc"
558 . iddl(*),ifix(*),iadk(*),jdik(*),ndof(*)
561 . ud(3,*), diag_k(*),lt_k(*),b(*)
565 INTEGER N, I, J, ,I1,J1,K1,ND,ID
572 IF (ifix(id)==3.OR.ifix(id)==4.OR.
573 . ifix(id)==10.OR.ifix(id)==11)
THEN
575 DO j1 = iadk(i1),iadk(i1+1)-1
577 IF (k1==id ) b(i1)=b(i1)-lt_k(j1)*ud(j,i)
580 DO j1 = iadk(id),iadk(id+1)-1
582 b(k1)=b(k1)-lt_k(j1)*ud(j,i)
587 CALL fv_rwl0(iddl ,ifix ,ndof ,iadk ,jdik ,
588 1 diag_k ,lt_k ,ud ,b )
597 SUBROUTINE fv_dd0(IDDL ,IKC ,NDOF ,DD ,DDR ,D )
601#include "implicit_f.inc"
605#include "com01_c.inc"
606#include "com04_c.inc"
611 . iddl(*),ikc(*),ndof(*)
614 . dd(3,*), d(3,*),ddr(3,*)
617 INTEGER N, I, J, ,I1,J1,K1,ND,
624 IF (ikc(
id)==3.OR.ikc(
id)
625 . ikc(
id)==10.OR.ikc(
id)==11)
THEN
638 IF (ikc(
id)==2) ddr(j,i)=zero
651 SUBROUTINE dinteri(TF,IAD,IPOS1,ILEN,NEL0,X1,X2,DY,ITY)
655#include "implicit_f.inc"
660 INTEGER NEL0,IAD(*),IPOS1(*),ILEN(*),ITY(*)
662 . X1(*),X2(*),DY(*),(2,*)
668 . y1(nel0),y2(nel0),dydx,x(nel0),y(nel0),
670 INTEGER I,J1,J,J2,ICONT,J0,L,JJ
674 IF (ity(i)<2) dy(i) =zero
675 IF (ity(i)==0) v(i) = zero
678 j1 = ipos1(i)+iad(i)+1
679 IF (x1(i)>tf(1,j1))
THEN
684 ilen(i) = ilen(i)+ipos1(i)
694 j1 = ipos(i)+iad(i)+1
705 dydx=(tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
706 y1(i) = tf(2,j1) + dydx*(x1(i)-tf(1,j1))
723 IF (x1(i)>tf(1,j1+1))
THEN
724 v(i) = v(i) + half*(tf(2,j1)+tf(2,j1+1))*
725 . (tf(1,j1+1)-tf(1,j1))
728 dydx = (tf(2,j1+1)-tf(2,j1))/(tf(1,j1+1)-tf(1,j1))
729 y2(i) = tf(2,j1) + dydx*(x2(i)-tf(1,j1))
730 v(i) = v(i) + half*(tf(2,j1)+y1(i))*
744 j1 = ipos(i)+iad(i)+1
745 IF(j<=ilen(i).AND.x2(i)>tf(1,j1))
THEN
749 dy(i) = dy(i) + half*(tf(2,j1)+y(i))*
753 ELSEIF (ity(i)==0)
THEN
754 dy(i) = dy(i) + v(i)*(tf(1,j1)-x(i)) +
755 . one_over_6*(two*y(i)+tf(2,j1))*(tf(1,j1)-x(i))*(tf(1,j1)-x(i))
756 v(i) = v(i) + half*(y(i)+tf(2,j1))*(tf(1,j1)-x(i))
768 dydx=(tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
769 y2(i) = tf(2,j1) + dydx*(x2(i)-tf(1,j1))
771 dy(i) = y2(i) - y1(i)
772 ELSEIF (ity(i)==1)
THEN
773 dy(i) = dy(i) + half*(y(i)+y2(i))*(x2(i)-x(i))
774 ELSEIF (ity(i)==0)
THEN
775 dy(i) = dy(i) + v(i)*(x2(i)-x(i)) +
776 . one_over_6*(two*y(i)+y2(i))*(x2(i)-x(i))*(x2(i)-x(i))
790 SUBROUTINE fv_impl(IBFV ,SKEW ,XFRAME ,LJ ,IDDL ,
791 1 IFIX ,NDOF ,IADK ,JDIK ,DIAG_K ,
796#include "implicit_f.inc"
800#include "com04_c.inc"
801#include "param_c.inc"
805 INTEGER IBFV(NIFV,*),LJ(*)
807 . IDDL(*),IADK(*),JDIK(*),NDOF(*),IFIX(*)
810 . UD(*),RD(*), DIAG_K(*),LT_K(*),SKEW(LSKEW,*),LB(*),
815 INTEGER N, I, ISK, J, L, K1, K2, K3, K,
816 . IFM, J2,J3,I1,J1,ND,ID,IR,NN
827 IF (ifm<=1) j=j-10*isk
846 CALL fv_updk(i ,iddl ,ej ,j1 ,ir ,
847 1 iadk ,jdik ,diag_k,lt_k ,lb ,ud )
855 CALL fv_updk(i ,iddl ,ej ,j1 ,ir ,
856 1 iadk ,jdik ,diag_k,lt_k ,lb ,rd )
872 1 IADK ,JDIK ,DIAG_K,LT_K ,LB ,
877#include "implicit_f.inc"
881#include "impl1_c.inc"
885 INTEGER N,JJ,IDDL(*),IR,IADK(*) ,JDIK(*)
887 . EJ(*),(*),LT_K(*),LB(*),UD(3,*)
891 INTEGER ,J,,K,L,J1,K1,L1,ID,SHF,JFT,KFT,LFT,NL,NJ,
900 IF (ej(k)==zero.AND.ej(l)==zero)
RETURN
901 CALL bc_updk(n ,iddl ,ej ,jj ,ir ,
912 IF (imconv/=1)
RETURN
914 s = -diag_k(id+j1)*ud(jj,n)
915 lb(id+k1)=lb(id+k1)-ej(k)*s
916 lb(id+l1)=lb(id+l1)-ej(l)*s
930 SUBROUTINE fv_impd(IBFV ,LJ ,SKEW ,XFRAME,UD ,
935#include "implicit_f.inc"
939#include "com04_c.inc"
940#include "param_c.inc"
944 INTEGER IBFV(NIFV,*),LJ(*)
947 . UD(3,*),RD(3,*),SKEW(LSKEW,*),XFRAME(NXFRAME,*)
951 INTEGER N, I, ISK, J, L, K1, K2, K3, ISENS,,
952 . II, NN, NR, NSK, NFK, IFM,
953 . I1,J1,ND,ID,ITAG(NFXVEL),N2,J2,N1,NL
956 . ej(3),ej1(3),s,s1,s2
963 IF (lj(n)>0.AND.itag(n)>=0)
THEN
968 IF (lj(n1)>0.AND.iabs(ibfv(1,n1))==i)
THEN
969 nn =iabs(lj(n1)-lj(n))
970 IF (nn>0.AND.nn<3)
THEN
987 IF (ifm<=1) j=j-10*isk
1002 ej(1)=xframe(k1,ifm)
1003 ej(2)=xframe(k2,ifm)
1004 ej(3)=xframe(k3,ifm)
1018 ELSEIF (itag(n)>0)
THEN
1025 IF (ifm<=1) j=j-10*isk
1040 ej(1)=xframe(k1,ifm)
1041 ej(2)=xframe(k2,ifm)
1042 ej(3)=xframe(k3,ifm)
1053 IF (ifm<=1) j=j-10*isk
1063 ej1(1)=xframe(k1,ifm)
1064 ej1(2)=xframe(k2,ifm)
1065 ej1(3)=xframe(k3,ifm)
1070 ej1(nn) = ej1(nn)*s2
1075 CALL bc_updd2(i ,ej ,j1 ,ej1 ,j2 ,ud )
1079 CALL bc_updd2(i ,ej ,j1 ,ej1 ,j2 ,rd )
1094 2 IDDL ,SKEW ,XFRAME,VL ,LJ )
1098#include "implicit_f.inc"
1102#include "com04_c.inc"
1103#include "param_c.inc"
1107 INTEGER NVL,IBFV(NIFV,*),IFIX(*),IDDL(*),LJ(*)
1110 . UD(3,*), SKEW(LSKEW,*),(3,*),VL(*),XFRAME(NXFRAME,*)
1114 INTEGER IVL(NVL),I,J,II,N,ND,,ISK,IFM,
1115 . NN,K,L,J1,K1,K2,,L1,N1,N2,N3,NL
1116 INTEGER (NVL),ITAG(NUMNOD)
1127 IF (n1/=nvl)
WRITE(*,*)
'ERROR IN FVL_MODIF',n1,nvl
1139 itag(ii)= itag(ii)+1
1157 itag(ii)= itag(ii)+1
1178 IF (ifix(k1)==9) ifix(k1)=0
1196 ej(1)=xframe(k1,ifm)
1197 ej(2)=xframe(k2,ifm)
1198 ej(3)=xframe(k3,ifm)
1200 CALL l_dir02(ej,j1,j,ifix(nd+1))
1201 ud(j1,ii)=vl(n)/ej(j1)
1219 ej(1)=xframe(k1,ifm)
1220 ej(2)=xframe(k2,ifm)
1221 ej(3)=xframe(k3,ifm)
1223 CALL l_dir02(ej,j1,j,ifix(nd+4))
1224 rd(j1,ii)=vl(n)/ej(j1)
1269 ej(1)=xframe(k1,ifm)
1270 ej(2)=xframe(k2,ifm)
1271 ej(3)=xframe(k3,ifm)
1275 ud(nn,ii)=ud(nn,ii)+vl(n)*ej(nn)
1279 rd(nn,ii)=rd(nn,ii)+vl(n)*ej(nn)
1318 ej(1)=xframe(k1,ifm)
1319 ej(2)=xframe(k2,ifm)
1320 ej(3)=xframe(k3,ifm)
1322 CALL l_dir02(ej,j1,j,ifix(nd+1))
1323 ud(j1,ii)=vl(n)/ej(j1)
1339 ej(1)=xframe(k1,ifm)
1340 ej(2)=xframe(k2,ifm)
1341 ej(3)=xframe(k3,ifm)
1343 CALL l_dir02(ej,j1,j,ifix(nd+4))
1344 rd(j1,ii)=vl(n)/ej(j1)
1356 IF (lj(n1)>0.AND.ii==nn.AND.jj<3)
GOTO 100
1360 IF (j/=j1) ifix(nd+j)=0
1375 ej(1)=xframe(k1,ifm)
1376 ej(2)=xframe(k2,ifm)
1377 ej(3)=xframe(k3,ifm)
1379 CALL l_dir02(ej,jj,j,ifix(nd+1))
1380 ud(jj,nn)=vl(n1)/ej(jj)
1396 ej(1)=xframe(k1,ifm)
1397 ej(2)=xframe(k2,ifm)
1398 ej(3)=xframe(k3,ifm)
1400 CALL l_dir02(ej,jj,j,ifix(nd+4))
1401 rd(jj,nn)=vl(n)/ej(jj)
1412 IF (lj(n)<0) lj(n) = -lj(n)
1424!||====================================================================
1430#include "implicit_f.inc"
1434#include "param_c.inc"
1438 INTEGER NFX ,IFX(2,*) ,IBFV(NIFV,*)
1440 . a(3,*),skew(lskew,*),xframe(nxframe,*)
1444 INTEGER,J,N,K,L,J1,K1,L1,K2,K3,II
1454 IF (ifm<=1) j=j-10*isk
1464 ej(2)=xframe(k2,ifm)
1465 ej(3)=xframe(k3,ifm)
1490#include "implicit_f.inc"
1506 a(k,n)=a(k,n)-ej(k)*a(j1,n)
1522#include "implicit_f.inc"
1532 INTEGER I,ND,K,L,J1,K1,L1
1540 diag_k(k)=diag_k(k)-(two*kdd(k,j)-kdd(j,j)*ej(k))*ej(k)
1541 diag_k(l)=diag_k(l)-(two*kdd(l,j)-kdd(j,j)*ej(l))*ej(l)
1558#include "implicit_f.inc"
1562#include "com04_c.inc"
1563#include "param_c.inc"
1567 INTEGER IBFV(NIFV,*),LJ(*),IDDL(*),NDOF(*)
1570 . skew(lskew,*),lb(*),xframe(nxframe,*)
1574 INTEGER N, I, ISK, J, L, K1, K2, K3, K,
1586 IF (ifm<=1) j=j-10*isk
1596 ej(1)=xframe(k1,ifm)
1597 ej(2)=xframe(k2,ifm)
1598 ej(3)=xframe(k3,ifm)
1606 CALL bc_updb(id ,ej ,j1 ,ir ,lb )
1614 CALL bc_updb(id ,ej ,j1 ,ir ,lb )
1623!||--- called by ------------------------------------------------------
1630 1 IDDL ,IDDLM ,IKC ,IADK ,JDIK ,
1631 2 DIAG_K ,LT_K ,UD ,LB ,A ,
1632 3 KSS ,KSM ,IDLM ,IFSS ,IFSM )
1636#include "implicit_f.inc"
1640#include
"param_c.inc"
1644 INTEGER ,IBFV(NIFV,*),J1,IDLM ,IFSS ,IFSM
1646 . IDDL(*),IDDLM(*),IADK(*),JDIK(*),IKC(*)
1649 . ud(3,*),diag_k(*),lt_k(*),skew(lskew,*),lb(*),
1650 . xframe(nxframe,*),a(3,*),kss(6),ksm(9)
1654 INTEGER I, ISK, J, L, K1, K2, K3, K,
1655 . IFM, J2,J3,I1,ND,ID,IR,NN
1663 IF (ifm<=1) j=j-10*isk
1672 ej(1)=xframe(k1,ifm)
1673 ej(2)=xframe(k2,ifm)
1680 CALL fv_updfr(i ,ej ,j1 ,iddl ,iddlm
1681 1 ikc ,iadk ,jdik ,diag_k,lt_k ,
1682 2 ud ,lb ,a ,kss ,ksm ,
1683 3 idlm ,ifss ,ifsm )
1697 1 IKC ,IADK ,JDIK ,DIAG_K ,LT_K ,
1698 2 UD ,LB ,A ,KSS ,KSM ,
1703#include "implicit_f.inc"
1707 INTEGER N,J1,IDLM ,IFSS ,IFSM
1709 . IDDL(*),IDDLM(*),IADK(*),(*),IKC(*)
1712 . UD(3,*),DIAG_K(*),LT_K(*),LB(*),EJ(3),
1713 . A(3,*),KSS(6),KSM(9)
1721 CALL BC_UPDFR(N ,IDDL ,EJ ,J1 ,IDDLM ,
1722 1 IKC ,IADK ,JDIK ,DIAG_K,LT_K ,
1723 2 LB ,A ,KSS ,KSM ,IDLM ,
1726 S = -kss(j1)*ud(j1,n)
1733 IF(ikc(id+k)==0) lb(idm+k)=lb(idm+k)-ej(k)*s
1734 IF(ikc(id+l)==0) lb(idm+l)=lb(idm+l)-ej(l)*s
1739!||====================================================================
1745!||--- uses -----------------------------------------------------
1747!|| sensor_mod ../common_source/modules/sensor_mod.f90
1749 SUBROUTINE wfv_imp(IBFV ,NPC ,TF ,VEL ,SENSOR_TAB,
1750 1 UD ,RD ,IFIX ,IDDL ,NSENSOR ,
1751 2 SKEW ,IFRAME ,XFRAME,A ,AR ,
1752 3 X ,NDOF ,MS ,IN ,WEIGHT ,
1762#include "implicit_f.inc"
1763#include "mvsiz_p.inc"
1767#include "com04_c.inc"
1768#include "com08_c.inc"
1769#include "param_c.inc"
1774 INTEGER ,
INTENT(IN) :: NSENSOR
1775 INTEGER NPC(*),IBFV(NIFV,*),
1776 . IFIX(*),IDDL(*),IFRAME(LISKN,*),NDOF(*),WEIGHT(*)
1779 . TF(*), VEL(LFXVELR,*), UD(3,*),
1780 . SKEW(LSKEW,*),RD(3,*),A(3,*),AR(3,*),IN(*),
1781 . X(3,*),XFRAME(NXFRAME,*),DW,MS(*),RBY(NRBY,*)
1782 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
1786 INTEGER N, I, ISK, J, L, K1, K2, K3, ISENS,K,
1787 . II, IC, NN, IDEB, NR, NSK, NFK, IFM, N0,
1788 . INDEX(MVSIZ),I1,J1,ND,ID,J2,J3,
1792 . FAC, STARTT, STOPT, TS,
1793 . RX,RY,RZ,VF,VFX,VFY,VFZ,
1794 . FACX,FINT,A0,IN0,DD
1795 INTEGER ILENC(MVSIZ), IPOSC(MVSIZ), IADC(MVSIZ),
1798 . YC(MVSIZ), TSC(MVSIZ), DYDXC(MVSIZ),
1807 DO nn=1,nfxvel,nvsiz
1808 IF (ibfv(8,nn)==1)
GOTO 100
1811 DO 10 ii = 1,
min(nfxvel-ideb,nvsiz
1815 IF(tt<startt)
GOTO 10
1816 IF(tt>stopt)
GOTO 10
1818 IF(ndof(i)==0)
GOTO 10
1821 IF(ibfv(4,n)==sensor_tab(k)%SENS_ID) isens=k
1826 ts = tt-sensor_tab(isens)%TSTART
1832 tsc1(ic) = tsc(ic)-dt2
1835 DO 20 ii = 1,
min(nfxvel-ideb,nvsiz)
1839 IF(tt<startt)
GOTO 20
1840 IF(tt>stopt)
GOTO 20
1842 IF(ndof(i)==0)
GOTO 20
1846 tsc1(ic) = tsc(ic)-dt2
1850 ideb = ideb +
min(nfxvel-ideb,nvsiz)
1855 tsc(ii) = facx*tsc(ii)
1856 tsc1(ii) = facx*tsc1(ii)
1864 iposc(ii) = ibfv(5,n)
1865 iadc(ii) = half * npc(l) + 1
1866 ilenc(ii) = half * npc(l+1) - iadc(ii) - iposc(ii)
1869 CALL dintera(tf,iadc,iposc,ilenc,ic,tsc1,tsc,yc,lc)
1873 yc(ii) = yc(ii) * fac
1875 IF(ibfv(7,n)<2) yc(ii) = yc(ii) / facx
1876 IF(ibfv(7,n)==0) yc(ii) = yc(ii) / facx
1881 IF (ifm<=1) j=j-10*isk
1884 IF(isk<=1.AND.ifm<=1)
THEN
1889 dy_v(j,i) = dy_v(j,i)+(yc(ii)-a(j,i))*dt2
1890 dy_d(j,i) =dt2*(dy_v(j,i)+(dy_g-dy_b-half)*yc(ii)*dt2)
1893 dy_v(j,i) = ud(j,i)/dt2
1895 yc(ii) = half*dy_v(j,i)/dt2
1897 dw = dw + ud(j,i)*(ms(i)*weight(i)*yc(ii)-fint)
1902 IF(isk<=1.AND.ifm<=1)
THEN
1903 IF(ibfv(6,n)==0)
THEN
1908 . (rby(16+j,nr) + rby(19+j,nr) + rby(22+j,nr))
1911 IF(ibfv(6,n)==0)
THEN
1919 . ((rby(17,nr)*skew(k1,isk)
1920 . +rby(18,nr)*skew(k2,isk)
1921 . +rby(19,nr)*skew(k3,isk))*skew(k1,isk) +
1922 . (rby(20,nr)*skew(k1,isk)
1923 . +rby(21,nr)*skew(k2,isk)
1924 . +rby(22,nr)*skew(k3,isk))*skew(k2,isk) +
1925 . (rby(23,nr)*skew(k1,isk)
1926 . +rby(24,nr)*skew(k2,isk)
1927 . +rby(25,nr)*skew(k3,isk))*skew(k3,isk))
1930 IF(ibfv(6,n)==0)
THEN
1938 . ((rby(17,nr)*xframe(k1,ifm)
1939 . +rby(18,nr)*xframe(k2,ifm)
1940 . +rby(19,nr)*xframe(k3,ifm))*xframe(k1,ifm) +
1941 . (rby(20,nr)*xframe(k1,ifm)
1942 . +rby(21,nr)*xframe(k2,ifm)
1943 . +rby(22,nr)*xframe(k3,ifm))*xframe(k2,ifm) +
1944 . (rby(23,nr)*xframe(k1,ifm)
1945 . +rby(24,nr)*xframe(k2,ifm)
1946 . +rby(25,nr)*xframe(k3,ifm))*xframe(k3,ifm))
1950 dy_vr(j,i) = dy_vr(j,i)+(yc(ii)-ar(j,i))*dt2
1951 dy_dr(j,i) =dt2*(dy_vr(j,i)+(dy_g-dy_b-half)*yc(ii)*dt2)
1954 dy_vr(j,i) = rd(j,i)/dt2
1955 dy_dr(j,i) = rd(j,i)
1956 yc(ii) = half*dy_vr(j,i)/dt2
1958 dw = dw + rd(j,i)*(in0*yc(ii)-fint)
1986#include "implicit_f.inc"
2006 IF ((abs(ej1(1))+abs(ej1(2))+abs(ej1(3)))==zero)
THEN
2007 CALL ancmsg(msgid=104,anmode=aninfo
2028 SUBROUTINE dintera(TF,IAD,IPOS1,ILEN,NEL0,X1,X2,AY,ITY)
2032#include "implicit_f.inc"
2037 INTEGER NEL0,IAD(*),IPOS1(*),ILEN(*),ITY(*)
2039 . X1(*),X2(*),AY(*),TF(2,*)
2046 . y1(nel0),y2(nel0),dydx,x(nel0),y(nel0),
2047 . vy1(nel0),vy2(nel0)
2048 INTEGER I,J1,J,J2,ICONT,J0,L
2052 j1 = ipos1(i)+iad(i)+1
2053 IF (x1(i)>tf(1,j1))
THEN
2058 ilen(i) = ilen(i)+ipos1(i)
2068 j1 = ipos(i)+iad(i)+1
2069 IF(j<=ilen(i)-1.AND.x1(i)>tf(1,j1))
THEN
2079 dydx=(tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
2080 y1(i) = tf(2,j1) + dydx*(x1(i)-tf(1,j1))
2082 IF (ity(i)==2) vy1(i) = dydx
2093 j1 = ipos(i)+iad(i)+1
2094 IF(j<=ilen(i).AND.x2(i)>tf(1,j1))
THEN
2104 dydx=(tf(2,j2)-tf(2,j1))/(tf(1,j2)-tf(1,j1))
2105 y2(i) = tf(2,j1) + dydx*(x2(i)-tf(1,j1))
2107 IF (ity(i)==2) vy2(i) = dydx
2112 ay(i) = (vy2(i) - vy1(i))/(x2(i)-x1(i))
2113 ELSEIF (ity(i)==1)
THEN
2114 ay(i) = (y2(i)-y1(i))/(x2(i)-x1(i))
2115 ELSEIF (ity(i)==0)
THEN
2117 ay(i) = (y2(i)+y1(i))*half
2133 1 UD ,RD ,IFIX ,IDDL ,NSENSOR ,
2134 2 SKEW ,IFRAME ,XFRAME,A ,AR ,
2135 3 X ,NDOF ,MS ,IN ,WEIGHT ,
2145#include "implicit_f.inc"
2146#include "mvsiz_p.inc"
2150#include "com04_c.inc"
2151#include "com08_c.inc"
2152#include "param_c.inc"
2156 INTEGER ,
INTENT(IN) :: NSENSOR
2157 INTEGER NPC(*),IBFV(NIFV,*),
2158 . IFIX(*),IDDL(*),IFRAME(LISKN,*),NDOF(*),WEIGHT(*)
2161 . tf(*), vel(lfxvelr,*), ud(3,*),
2162 . skew(lskew,*),rd(3,*),a(3,*),ar(3,*),in(*),
2164 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
2168 INTEGER N, I, ISK, J, L, K1, K2, K3, ,K,
2169 . ii, ic, nn, ideb, nr, nsk, nfk, ifm, n0,
2170 . index(mvsiz),i1,j1,nd,
id,j2,j3,
2174 . fac, startt, stopt, ts,
2175 . rx,ry,rz,vf,vfx,vfy,vfz,
2176 . facx,fold,a0,in0,dd,ms0,dvr
2184 DO nn=1,nfxvel,nvsiz
2185 IF (ibfv(8,nn)==1)
GOTO 100
2188 DO 10 ii = 1,
min(nfxvel-ideb,nvsiz)
2192 IF(tt<startt)
GOTO 10
2193 IF(tt>stopt)
GOTO 10
2195 IF(ndof(i)==0)
GOTO 10
2198 IF(ibfv(4,n)==sensor_tab(k)%SENS_ID) isens=k
2203 ts = tt-sensor_tab(isens)%TSTART
2210 DO 20 ii = 1,
min(nfxvel-ideb,nvsiz)
2214 IF(tt<startt)
GOTO 20
2215 IF(tt>stopt)
GOTO 20
2217 IF(ndof(i)==0)
GOTO 20
2223 ideb = ideb +
min(nfxvel-ideb,nvsiz)
2231 IF (ifm<=1) j=j-10*isk
2232 ms0=abs(ms(i))*weight(i)
2234 IF(isk<=1.AND.ifm<=1)
THEN
2235 a0 = a(j,i)+ms0*dy_a(j,i)
2240 a0 = skew(k1,isk)*(a(1,i)+ms0*dy_a(1,i)) +
2241 . skew(k2,isk)*(a(2,i)+ms0*dy_a(2,i)) +
2242 . skew(k3,isk)*(a(3,i)+ms0*dy_a(3,i))
2247 dd = xframe(k1,ifm)*ud(1,i)
2248 . + xframe(k2,ifm)*ud(2,i)
2249 . + xframe(k3,ifm)*ud(3,i)
2250 a0 = xframe(k1,ifm)*(a(1,i)+ms0*dy_a(1,i))
2251 . + xframe(k2,ifm)*(a(2,i)+ms0*dy_a(2,i))
2252 . + xframe(k3,ifm)*(a(3,i)+ms0*dy_a(3,i))
2258 IF(isk<=1.AND.ifm<=1)
THEN
2259 a0 = ar(j,i)+in0*dy_ar(j,i)
2264 a0 = skew(k1,isk)*(ar(1,i)+in0*dy_ar(1,i))+
2265 . skew(k2,isk)*(ar(2,i)+in0*dy_ar(2,i))+
2266 . skew(k3,isk)*(ar(3,i)+in0*dy_ar(3,i))
2272 a0 = xframe(k1,ifm)*(ar(1,i)+in0*dy_ar(1,i))+
2273 . xframe(k2,ifm)*(ar(2,i)+in0*dy_ar(2,i))+
2274 . xframe(k3,ifm)*(ar(3,i)+in0*dy_ar(3,i))
2277 vel(4,n) = half*(vel(4,n)+a0)
2288!||--- calls -----------------------------------------------------
2298 1 NDDL ,IDDL ,IFIX ,IADK ,JDIK ,
2299 2 SKEW ,NFVBCL ,NBKUD )
2303#include "implicit_f.inc"
2307#include "com04_c.inc"
2308#include "param_c.inc"
2312 INTEGER IBFV(NIFV,*),LJ(*),ISKEW(*),ICODT(*),ICODR(*),NFVBCL,
2313 . nbkud,nddl ,iadk(*) ,jdik(*),iddl(*),ifix(*)
2320 INTEGER N, I, ISK, J, L, K1, K2, K3, K,II,N1,
2321 . IFM, J2,J3,I1,J1,ND,NUD,ITAG(NFXVEL),,
2322 . JBC,JJ,J11,J1_1,ISKBC
2344 IF (ifm<=1) j=j-10*isk
2346 IF (isk==iskbc)
THEN
2348 IF (icodr(i)>0)
THEN
2353 IF (icodt(i)>0)
THEN
2369 IF (j1>0.AND.itag(n)>=0)
THEN
2374 IF (ifm<=1) j=j-10*isk
2384 IF (ifix(nd+k)==9) nud = nud + 1
2390 jj = iabs(lj(n1)-j1)
2391 ii = iabs(ibfv(1,n1))
2392 IF (lj(n1) < 0.AND.jj < 3.AND.ii==i)
THEN
2401 CALL getbcl_j(ictr ,isk ,skew ,jbc ,j )
2406 CALL updfvbc_l(nd ,ifix ,nddl ,iadk ,jdik ,
2408 ELSEIF (nud == 1)
THEN
2410 IF (ictr==3 .OR.ictr==5.OR.ictr==6)
THEN
2411 CALL getbcl_j(ictr ,isk ,skew ,k ,j)
2418 CALL updfvbc_l(nd ,ifix ,nddl ,iadk ,jdik ,
2421 CALL updfvbc_l(nd ,ifix ,nddl ,iadk ,jdik ,
2424 ELSEIF (ictr==1 .OR.ictr==2.OR.ictr==4)
THEN
2427 CALL getbcl_j(ictr ,isk ,skew ,j1_1 ,j )
2431 CALL updfvbc_l(nd ,ifix ,nddl ,iadk ,jdik ,
2458 1 IFIX ,NDOF ,IADK ,JDIK ,DIAG_K ,
2459 2 LT_K ,UD ,RD ,LB ,NDDL ,
2460 3 ICODT ,ICODR ,ICODT1 ,ICODR1,NKUD1 ,
2465#include "implicit_f.inc"
2469#include "com01_c.inc"
2470#include "com04_c.inc"
2471#include "param_c.inc"
2472#include "units_c.inc"
2476 INTEGER IBFV(NIFV,*),LJ(*),NFVBCL,NDDL,
2479 . IDDL(*),IADK(*),JDIK(*),NDOF(
2483 . UD(3,*),RD(3,*), DIAG_K(*),LT_K(*),SKEW(LSKEW,*),LB(*),
2484 . XFRAME(NXFRAME,*),BKUD(*)
2492 INTEGER N, I, ISK, J, L, K1, K2, K3, K,II,N1,
2493 . IFM, J2,J3,,J1,ND,NUD,ITAG(NFXVEL),ICTR,
2494 . JBC,,J11,J1_1,ICTR1
2496 . EJ(3),S,UDL(3),UDG(3)
2500 icodt1(n) = icodt(n)
2504 icodr1(n) = icodr(n)
2512 IF (j1>0.AND.itag(n)>=0)
THEN
2517 IF (ifm<=1) j=j-10*isk
2527 IF (ifix(nd+k)==9) nud = nud + 1
2534 jj = iabs(-lj(n1)-j1)
2535 ii = iabs(ibfv(1,n1))
2536 IF (lj(n1) < 0.AND.jj < 3.AND.ii==i)
THEN
2546 WRITE(istdo,
'(A,I4)')
2547 +
' ** ERROR IN IMPVEL(OR IMPDISP) IN SKEW:',isk
2551 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
2552 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,rd(1,i),n1)
2554 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
2555 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,ud(1,i),n1)
2558 CALL udl2_ug(skew(1,isk),udl,udg)
2561 CALL getbcl_j(ictr ,isk ,skew ,jbc ,j )
2566 rd(j1_1-3,i)=udg(j1_1)
2569 ud(j1_1,i)=udg(j1_1)
2575 CALL updfvbc_b(nd ,ifix ,nddl ,iadk ,jdik ,
2576 1 lt_k ,udg(k),nkud1 ,ikud ,bkud )
2577 ELSEIF (nud == 1)
THEN
2579 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
2581 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
2584 IF (ictr==3 .OR.ictr==5.OR.ictr==6)
THEN
2586 CALL udl2_ug(skew(1,isk),udl,udg)
2587 CALL getbcl_j(ictr ,isk ,skew ,k ,j)
2608 IF (j1_1 >3 ) j1_1 = j1_1 -3
2609 CALL updfvbc_b(nd ,ifix ,nddl ,iadk ,jdik ,
2610 1 lt_k ,udg(j1_1),nkud1 ,ikud ,bkud )
2614 CALL updfvbc_b(nd ,ifix ,nddl ,iadk ,jdik ,
2615 1 lt_k ,udg(k),nkud1 ,ikud ,bkud )
2617 ELSEIF (ictr==1 .OR.ictr==2.OR.ictr==4)
THEN
2620 CALL getbcl_j(ictr ,isk ,skew ,j1_1 ,j )
2626 CALL udl2_ug2(j,ictr,skew(1,isk),udl,udg,k)
2628 CALL fvbc2_bup(j ,ictr ,skew(1,isk),j1 ,j1_1 ,
2629 1 udg ,diag_k ,lb ,iddl(i))
2632 rd(j1-1,i)=udg(j1-1)
2633 rd(j1_1-1,i)=udg(j1_1-1)
2636 ud(j1_1,i)=udg(j1_1)
2640 IF (j1_1 >3 ) j1_1 = j1_1 -3
2641 CALL updfvbc_b(nd ,ifix ,nddl ,iadk ,jdik ,
2642 1 lt_k ,udg(j1_1),nkud1 ,ikud ,bkud )
2668 SUBROUTINE recu_ul(ISK,IFM,SKEW,XFRAME,J,J1,UDL,UD,N)
2676#include "implicit_f.inc"
2680#include "param_c.inc"
2681#include "impl1_c.inc"
2685 INTEGER ISK,IFM,J,J1,N
2688 . ud(*),udl(*), skew(lskew,*),xframe(nxframe,*)
2693 INTEGER J0,J01,K1,K2,K3
2699 IF (j > 3) j0 = j0-3
2700 IF (j1> 3) j01 = j01-3
2702 IF (imconv == 1)
THEN
2714 ej(1)=xframe(k1,ifm)
2715 ej(2)=xframe(k2,ifm)
2716 ej(3)=xframe(k3,ifm)
2718 udl(j0)=ud(j01)*ej(j01)
2719 fvbcudl(n) = udl(j0)
2737#include "implicit_f.inc"
2742 . udl(3),udg(3), skew(3,3)
2748 udg(1)=skew(1,1)*udl(1)+skew(1,2)*udl(2)+skew(1,3)*udl(3)
2750 udg(3)=skew(3,1)*udl(1)+skew(3,2)*udl(2)+skew(3,3)*udl(3)
2765#include "implicit_f.inc"
2777 IF (j > 3) j0 = j0-3
2778 IF (j1> 3) j01 = j01-3
2783 IF (j1>3) j1 = j1 - 3
2784 ELSEIF (k==j01)
THEN
2790 IF (j01==0) j1 = j1 + 3
2805#include "implicit_f.inc"
2809#include "impl1_c.inc"
2814 .
id,iadk(*),jdik(*),nddl,ifix(*) ,nb
2819 INTEGER N, I, J, K,I1,J1,ND,NFV,NF,NT,JD
2822 DO j1 = iadk(
id),iadk(
id+1)-1
2824 IF (ifix(jd)==0)nb = nb+1
2835 IF (ifix(i)==0)
THEN
2836 DO k = iadk(i),iadk(i+1)-1
2838 IF (
id==j) nb = nb+1
2851 1 LT_K ,UD ,NB ,IB ,KB )
2855#include "implicit_f.inc"
2859#include "impl1_c.inc"
2864 .
id,iadk(*),jdik(*),nddl,ifix(*) ,nb ,ib(*)
2871 INTEGER N, I, J, K,I1,J1,ND,NFV,NF,NT,JD
2874 DO j1 = iadk(
id),iadk(
id+1)-1
2876 IF (ifix(jd)==0.AND.lt_k(j1)/=zero)
THEN
2891 IF (ifix(i)==0)
THEN
2892 DO k = iadk(i),iadk(i+1)-1
2894 IF (
id==j.AND.lt_k(k)/=zero)
THEN
2921#include "implicit_f.inc"
2925#include "param_c.inc"
2929 INTEGER ICT,ISK,J,IR
2937 . ej(3),ej1(3),s,ea,eb
2946 ELSEIF (ict == 2)
THEN
2951 ELSEIF (ict == 1)
THEN
2956 ELSEIF (ict == 3)
THEN
2964 CALL bc_c2d(ej,ej1, j, j1 ,ea, eb )
2967 ELSEIF (ict == 5)
THEN
2975 CALL bc_c2d(ej,ej1, j, j1 ,ea, eb )
2978 ELSEIF (ict == 6)
THEN
2987 CALL bc_c2d(ej,ej1, j, j1 ,ea, eb )
2990 ELSEIF (ict == 7)
THEN
2994 IF (ir > 3) j = j + 3
3012#include "implicit_f.inc"
3016 INTEGER J1 ,JBC ,IFIX(*),K
3020 INTEGER I,(3),J01,J,J02
3023 IF (j01>3) j01 = j01 -3
3025 IF (j02>3) j02 = j02 -3
3031 IF (j02>3) j02 = j02 -3
3032 IF (jbc>3) j02 = j02 +3
3038 IF (j01>3) j01 = j01 -3
3039 IF (j1>3) j01 = j01 +3
3046 IF (jbc>3) j02 = j02 +3
3051 ELSEIF (j01==k)
THEN
3054 IF (j1>3) j01 = j01 +3
3073#include "implicit_f.inc"
3077 INTEGER J1 ,K ,IFIX(*)
3108#include "implicit_f.inc"
3112 INTEGER J1 ,J2 ,JBC ,IFIX(*)
3125 ELSEIF (jbc == j2)
THEN
3146#include "implicit_f.inc"
3153 . udl(3),udg(3), skew(3,3)
3159 . det,udi,udj,ei(3),ej(3)
3180 det = ei(2)*ej(3)-ei(3)*ej(2)
3181 udg(2)=(ej(3)*udi-ei(3)*udj)/det
3182 udg(3)=(-ej(2)*udi+ei(2)*udj)/det
3183 ELSEIF (k == 2)
THEN
3184 det = ei(1)*ej(3)-ei(3)*ej(1)
3185 udg(1)=(ej(3)*udi-ei(3)*udj)/det
3186 udg(3)=(-ej(1)*udi+ei(1)*udj)/det
3187 ELSEIF (k == 3)
THEN
3188 det = ei(1)*ej(2)-ei(2)*ej(1)
3189 udg(1)=(ej(2)*udi-ei(2)*udj)/det
3190 udg(2)=(-ej(1)*udi+ei(1)*udj)/det
3210#include "implicit_f.inc"
3214#include "com01_c.inc"
3215#include "com04_c.inc"
3216#include "impl1_c.inc"
3229 IF (ncycle /= 1 .OR.inconv /=1)
RETURN
3231 ALLOCATE(
ict_1(numnod))
3232 IF (iroddl >0 )
ALLOCATE(
icr_1(numnod))
3233 ALLOCATE(fvbcudl(nfxvel))
3255#include "implicit_f.inc"
3259#include "com01_c.inc"
3275 IF (iroddl >0 )
DEALLOCATE(
icr_1)
3300 1 IFIX ,NDOF ,UD ,RD ,ICODT ,
3305#include "implicit_f.inc"
3309#include "com04_c.inc"
3310#include "param_c.inc"
3311#include "units_c.inc"
3315 INTEGER IBFV(NIFV,*),LJ(*)
3317 . iddl(*),ndof(*),ifix(*),icodt(*),icodr(*),iskew(*)
3320 . ud(3,*),rd(3,*), skew(lskew,*), xframe(nxframe,*)
3326 INTEGER N, I, ISK, J, L, K1, K2, K3, K,II,N1,
3327 . IFM, J2,J3,I1,J1,ND,NUD,ITAG(NFXVEL),ICTR,
3328 . JBC,JJ,J11,J1_1,ICTR1,ISKBC,IDONE
3330 . EJ(3),S,UDL(3),UDG(3)
3338 IF (idone == 1)
RETURN
3350 IF (ifm<=1) j=j-10*isk
3352 IF (isk==iskbc)
THEN
3354 IF (icodr(i)>0) lj(n)=-j1
3356 IF (icodt(i)>0) lj(n)=-j1
3365 IF (j1>0.AND.itag(n)>=0)
THEN
3370 IF (ifm<=1) j=j-10*isk
3380 IF (ifix(nd+k)==9) nud = nud + 1
3387 jj = iabs(-lj(n1)-j1)
3388 ii = iabs(ibfv(1,n1))
3389 IF (lj(n1) < 0.AND.jj < 3.AND.ii==i)
THEN
3399 WRITE(istdo,
'(A,I4)')
3400 .
' ** ERROR IN IMPVEL(OR IMPDISP) IN SKEW:',isk
3404 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
3405 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,rd(1,i),n1)
3407 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
3408 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,ud(1,i),n1)
3411 CALL udl2_ug(skew(1,isk),udl,udg)
3414 CALL getbcl_j(ictr ,isk ,skew ,jbc ,j )
3419 rd(j1_1,i)=udg(j1_1)
3422 ud(j1_1,i)=udg(j1_1)
3424 ELSEIF (nud == 1)
THEN
3427 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
3429 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
3431 IF (ictr==3 .OR.ictr==5.OR.ictr==6)
THEN
3433 CALL udl2_ug(skew(1,isk),udl,udg)
3434 CALL getbcl_j(ictr ,isk ,skew ,k ,j)
3444 ELSEIF (ictr==1 .OR.ictr==2.OR.ictr==4)
THEN
3447 CALL getbcl_j(ictr ,isk ,skew ,j1_1 ,j )
3452 CALL udl2_ug2(j,ictr,skew(1,isk),udl,udg,k)
3455 rd(j1-1,i)=udg(j1-1)
3456 rd(j1_1-1,i)=udg(j1_1-1)
3459 ud(j1_1,i)=udg(j1_1)
3488#include "implicit_f.inc"
3503 det(1) = abs(ei(2)*ej(3)-ei(3)*ej(2))
3504 det(2) = abs(ei(1)*ej(3)-ei(3)*ej(1))
3505 det(3) = abs(ei(1)*ej(2)-ei(2)*ej(1))
3509 IF (det(i)>detmax)
THEN
3532#include "implicit_f.inc"
3536 INTEGER FVJ,K,ICT,ICT1
3589 1 UD ,RD ,ICODT ,ICODR,ISKEW ,
3594#include "implicit_f.inc"
3598#include "com01_c.inc"
3599#include "com04_c.inc"
3600#include "param_c.inc"
3601#include "units_c.inc"
3605 INTEGER IBFV(NIFV,*),LJ(*)
3607 . ndof(*),icodt(*),icodr(*),iskew(*),
3608 . icodt1(*),icodr1(*)
3611 . ud(3,*),rd(3,*), skew(lskew,*), xframe(nxframe,*)
3617 INTEGER N, I, ISK, J, L, K1, K2, K3, K,II,N1,
3618 . IFM, J2,J3,I1,J1,ND,NUD,ITAG(NFXVEL),ICTR,
3619 . JBC,JJ,J11,J1_1,ICTR1,ISKBC,IDONE,
3620 . ITAG1(numnod),NLFV(NFXVEL),IFIX(9)
3622 . EJ(3),S,UDL(3),UDG(3)
3641 IF (j==0.OR.j > 3) cycle
3642 itag1(ii)= itag1(ii)+1
3647 IF (j==0.OR.j > 3) cycle
3660 itag1(ii)= itag1(ii)+1
3672 icodt1(n) = icodt(n)
3676 icodr1(n) = icodr(n)
3691 IF (ifm<=1) j=j-10*isk
3693 IF (isk==iskbc)
THEN
3695 IF (icodr(i)>0) lj(n)=-j1
3697 IF (icodt(i)>0) lj(n)=-j1
3705 IF (j1>0.AND.itag(n)>=0)
THEN
3710 IF (ifm<=1) j=j-10*isk
3724 IF (nud > 1 .AND. idone ==1)
THEN
3727 jj = iabs(-lj(n1)-j1)
3728 ii = iabs(ibfv(1,n1))
3729 IF (lj(n1) < 0.AND.jj < 3.AND.ii==i)
THEN
3739 WRITE(istdo,
'(A,I4)')
3740 .
' ** ERROR IN IMPVEL(OR IMPDISP) IN SKEW:',isk
3744 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
3745 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,rd(1,i),n1)
3747 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
3748 CALL recu_ul(isk,ifm,skew,xframe,j11,j1_1,udl,ud(1,i),n1)
3751 CALL udl2_ug(skew(1,isk),udl,udg)
3754 CALL getbcl_j(ictr ,isk ,skew ,jbc ,j )
3759 rd(j1_1,i)=udg(j1_1)
3762 ud(j1_1,i)=udg(j1_1)
3764 ELSEIF (nud == 1)
THEN
3767 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,rd(1,i),n)
3769 CALL recu_ul(isk,ifm,skew,xframe,j,j1,udl,ud(1,i),n)
3771 IF (ictr==3 .OR.ictr==5.OR.ictr==6)
THEN
3772 IF (idone == 1)
THEN
3774 CALL udl2_ug(skew(1,isk),udl,udg)
3775 CALL getbcl_j(ictr ,isk ,skew ,k ,j)
3795 ELSEIF (ictr==1 .OR.ictr==2.OR.ictr==4)
THEN
3797 CALL gfvbc2_ind(j,ictr,skew(1,isk),k ,ictr1 )
3798 CALL getbcl_j(ictr ,isk ,skew ,j1_1 ,j )
3801 IF (idone == 1)
THEN
3802 CALL udl2_ug2(j,ictr,skew(1,isk),udl,udg,k)
3805 rd(j1-1,i)=udg(j1-1)
3809 ud(j1_1,i)=udg(j1_1)
3833 1 UD ,DIAG_K,LB ,ND )
3837#include "implicit_f.inc"
3841#include "impl1_c.inc"
3845 INTEGER FVJ ,ICT ,J1 ,J1_1 ,ND
3848 . skew(3,3),ud(3),diag_k(*),lb(*)
3854 . ej(3),ej1(3),det,ea,eb
3856 IF (imconv/=1)
RETURN
3878 det = one/(ej(j)*ej1(j2)-ej(j2)*ej1(j))
3879 ea = -det*(ej1(j2)*ej(k)-ej(j2)*ej1(k))
3880 eb = -det*(ej(j)*ej1(k)-ej1(j)*ej(k))
3882 lb(nd+k)=lb(nd+k)-ea*diag_k(nd+j)*ud(j)
3883 lb(nd+k)=lb(nd+k)-eb*diag_k(nd+j2)*ud(j2)
subroutine bc_updk(n, iddl, ej, jj, ir, iadk, jdik, diag_k, lt_k)
subroutine bc_updfr(n, iddl, ej, jj, iddlm, ikc, iadk, jdik, diag_k, lt_k, lb, a, kss, ksm, idlm, ifss, ifsm)
subroutine bc_updd(n, ej, j, d)
subroutine bc_c2d(ej, ej1, j, j1, ea, eb)
subroutine bc_updd2(n, ej, j, ej1, j1, d)
subroutine bc_updb(id, ej, jj, ir, lb)
subroutine l_dir2(ej, j, j0)
subroutine bc_imp0(icodt, icodr, iskew, ifix, ndof, iadn)
subroutine fv_imp0(iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, nbk, iab, bk, nddl, rd)
subroutine dim_fvbcl(ibfv, lj, iskew, icodt, icodr, nddl, iddl, ifix, iadk, jdik, skew, nfvbcl, nbkud)
subroutine fv_fint0(ibfv, npc, tf, vel, sensor_tab, ud, rd, ifix, iddl, nsensor, skew, iframe, xframe, a, ar, x, ndof, ms, in, weight, rby)
subroutine fv_rw0(iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, b)
subroutine fvbc2_bup(fvj, ict, skew, j1, j1_1, ud, diag_k, lb, nd)
subroutine udl2_ug(skew, udl, udg)
subroutine fv_imprl(ibfv, skew, xframe, lj, iddl, ndof, lb)
subroutine fvbc_impl1(ibfv, skew, xframe, lj, iddl, ifix, ndof, ud, rd, icodt, icodr, iskew)
subroutine fvl_frk(j1, n, ibfv, skew, xframe, iddl, iddlm, ikc, iadk, jdik, diag_k, lt_k, ud, lb, a, kss, ksm, idlm, ifss, ifsm)
subroutine fv_updfr(n, ej, j1, iddl, iddlm, ikc, iadk, jdik, diag_k, lt_k, ud, lb, a, kss, ksm, idlm, ifss, ifsm)
subroutine getbcl_j(ict, isk, skew, j, ir)
subroutine updfvbc_l(id, ifix, nddl, iadk, jdik, nb)
subroutine fv_updf(nfx, ifx, ibfv, skew, xframe, a)
subroutine fv_updkd(ej, j, kdd, diag_k)
subroutine udl2_ug2(fvj, ict, skew, udl, udg, k)
subroutine dintera(tf, iad, ipos1, ilen, nel0, x1, x2, ay, ity)
subroutine fvbc_compa0(j1, jbc, ifix, k)
subroutine l_dir02(ej, j, j0, ikc)
subroutine fvbc_compa1(j1, k, ifix)
subroutine gfvbc2_ind(fvj, ict, skew, k, ict1)
subroutine fv_rw(iddl, ikc, ndof, ud, v)
subroutine updfvbc_b(id, ifix, nddl, iadk, jdik, lt_k, ud, nb, ib, kb)
subroutine fv_impi(iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, b, nddl)
subroutine fv_impd(ibfv, lj, skew, xframe, ud, rd)
subroutine fv_updk(n, iddl, ej, jj, ir, iadk, jdik, diag_k, lt_k, lb, ud)
subroutine wfv_imp(ibfv, npc, tf, vel, sensor_tab, ud, rd, ifix, iddl, nsensor, skew, iframe, xframe, a, ar, x, ndof, ms, in, weight, rby, dw)
subroutine fvl_modif(nvl, ibfv, ud, rd, ifix, iddl, skew, xframe, vl, lj)
subroutine recu_ul(isk, ifm, skew, xframe, j, j1, udl, ud, n)
subroutine gdir2_ind(ei, ej, k)
subroutine fvbc_impl(ibfv, skew, xframe, lj, iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, rd, lb, nddl, icodt, icodr, icodt1, icodr1, nkud1, ikud, bkud)
subroutine fv_imp1(nbk, iab, bk, b)
subroutine fvbc_impd(ibfv, skew, xframe, lj, ndof, ud, rd, icodt, icodr, iskew, icodt1, icodr1)
subroutine dinteri(tf, iad, ipos1, ilen, nel0, x1, x2, dy, ity)
subroutine fvbc_compa2(j1, j2, jbc, ifix)
subroutine fv_impl(ibfv, skew, xframe, lj, iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, rd, lb)
subroutine fv_dd0(iddl, ikc, ndof, dd, ddr, d)
subroutine dir_fvbc(j, j1, k)
subroutine kin_updf(n, ej, j1, a)
subroutine fv_imp(ibfv, npc, tf, vel, sensor_tab, ud, rd, ifix, iddl, nsensor, skew, iframe, xframe, v, vr, x, lj, ndof, a, ar)
subroutine imp_buck(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, nsensor, sensor_tab, rby, skew, wa, icodt, icodr, iskew, ibfv, vel, lpby, npby, itab, weight, ms, in, ipari, intbuf_tab, x, itask, cont, icut, xcut, fint, fext, fopt, anin, nstrf, rwbuf, nprw, tani, dd_iad, eani, ipart, nom_opt, igrsurf, bufsf, idata, rdata, kxx, ixx, kxsp, ixsp, nod2sp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, v, a, graphe, partsav, xframe, dirul, fncont, ftcont, temp, sh4tree, sh3tree, err_thk_sh4, err_thk_sh3, iframe, lprw, elbuf_tab, fsav, fsavd, rwsav, ar, irbe3, lrbe3, frbe3, fr_i2m, iad_i2m, fr_rbe3m, iad_rbe3m, frwl6, ibcl, forc, irbe2, lrbe2, iad_rbe2, fr_rbe2, weight_md, cluster, fcluster, mcluster, xfem_tab, ale_connect, w, nv46, nercvois, nesdvois, lercvois, lesdvois, crkedge, stack, dimfb, fbsav6, stabsen, tabsensor, indx_crk, xedge4n, xedge3n, sph2sol, stifn, stifr, drape_sh4n, drape_sh3n, h3d_data, subset, igrnod, fcont_max, fncontp2, ftcontp2, nddl0, nnzk0, impbuf_tab, drapeg, matparam_tab, glob_therm, output)
subroutine upd_ksl(ipari, intbuf_tab, nint2, iint2, npby, lpby, itab, nrbyac, irbyac, x, ibfv, lj, skew, xframe, iskew, icodt, inloc, nsl, iad_m, iddl, ikc, ndof, iddlm, ud, a, b, kss, ksl_fr, ksi_fr, irbe3, lrbe3, frbe3, irbe2, lrbe2)
subroutine imp_fri(num_imp, ns_imp, ne_imp, ipari, intbuf_tab, npby, lpby, itab, nrbyac, irbyac, nint2, iint2, iddl, ikc, ndof, inloc, nsrem, nsl, nbintc, intlist, x, ibfv, lj, skew, xframe, iskew, icodt, a, ud, lb, ifdis, nddl, urd, iddli, irbe3, lrbe3, frbe3, irbe2, lrbe2)
subroutine fr_u2dd(d, dr, x, ipari, intbuf_tab, ndof, a, ar, lx, ibfv, skew, xframe, irbe3, lrbe3, irbe2, lrbe2)
subroutine imp_solv(timers, python, icode, iskew, iskwn, ipart, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg1, itab, itabm1, npc, ibcl, ibfv, sensor_tab, nnlink, lnlink, iparg, igrv, ipari, intbuf_tab, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, icodt, icodr, isky, adsky, iads_f, ilink, llink, weight, itask, ibvel, lbvel, fbvel, x, d, v, vr, dr, thke, damp, ms, in, pm, skews, geo, eani, bufmat, bufgeo, bufsf, tf, forc, vel, fsav, agrv, fr_wave, parts0, elbuf, rby, rivet, fr_elem, iad_elem, wa, a, ar, stifn, stifr, partsav, fsky, fskyi, iframe, xframe, w16, iactiv, fskym, igeo, ipm, wfext, nodft, nodlt, nint7, num_imp, ns_imp, ne_imp, ind_imp, it, rwbuf, lprw, fr_wall, nbintc, intlist, fopt, rwsav, fsavd, graphe, fac_k, ipiv_k, nkcond, nsensor, monvol, igrsurf, fr_mv, volmon, dirul, nodglob, mumps_par, cddlp, isendto, irecvfrom, newfront, imsch, i2msch, isizxv, ilenxv, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, kinet, num_imp1, temp, dt2prev, waint, lgrav, sh4tree, sh3tree, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, irbe3, lrbe3, frbe3, fr_i2m, iad_i2m, fr_rbe3m, iad_rbe3m, frwl6, irbe2, lrbe2, intbuf_tab_c, ikine, diag_sms, icfield, lcfield, cfield, count_remslv, count_remslve, elbuf_tab, elbuf_imp, xdp, weight_md, stack, dimfb, fbsav6, stabsen, tabsensor, drape_sh4n, drape_sh3n, h3d_data, multi_fvm, igrbric, igrsh4n, igrsh3n, igrbeam, forneqs, maxdgap, nddl0, nnzk0, it_t, impbuf_tab, cptreac, fthreac, nodreac, drapeg, interfaces, th_surf, dpl0cld, vel0cld, snpc, stf, glob_therm, wfext_md)
subroutine imp_chkm(timers, python, icode, iskew, iskwn, ipart, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg1, itab, itabm1, npc, ibcl, ibfv, sensor_tab, nnlink, lnlink, iparg, igrv, ipari, intbuf_tab, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, icodt, icodr, isky, adsky, iads_f, ilink, llink, weight, itask, ibvel, lbvel, fbvel, x, d, v, vr, dr, thke, damp, ms, in, pm, skews, geo, eani, bufmat, bufgeo, bufsf, tf, forc, vel, fsav, agrv, fr_wave, parts0, elbuf, rby, rivet, fr_elem, iad_elem, nsensor, wa, a, ar, stifn, stifr, partsav, fsky, fskyi, iframe, xframe, w16, iactiv, fskym, igeo, ipm, wfext, nodft, nodlt, nint7, num_imp, ns_imp, ne_imp, ind_imp, it, rwbuf, lprw, fr_wall, nbintc, intlist, fopt, rwsav, fsavd, dirul, lgrav, irbe3, lrbe3, frbe3, frwl6, irbe2, lrbe2, icfield, lcfield, cfield, elbuf_tab, weight_md, stack, dimfb, fbsav6, stabsen, tabsensor, drape_sh4n, drape_sh3n, h3d_data, nddl0, nnzk0, impbuf_tab, cptreac, fthreac, nodreac, drapeg, th_surf, dpl0cld, vel0cld, snpc, stf, wfext_md, igrsurf)
integer, dimension(:), allocatable icr_1
integer, dimension(:), allocatable ikud_1
integer, dimension(:), allocatable ict_1
subroutine velrot(vrm, lsm, vs)
subroutine dir_rbe2(j, j1, k)
subroutine fv_rwl0(iddl, ifix, ndof, iadk, jdik, diag_k, lt_k, ud, b)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine upd_int_k(icodt, icodr, iskew, ibfv, npc, tf, vel, xframe, rby, x, skew, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nss, iss, ipari, intbuf_tab, nint2, iint2, iaint2, nss2, iss2, nddli, nnzi, iadi, jdii, diag_i, lt_i, iddli, nddl, iadk, jdik, ikc, diag_k, lt_k, iddl, ndofi, itok, ud, lb, luj, nt_rw, irbe3, lrbe3, frbe3, nss3, iss3, irbe2, lrbe2, nsb2, isb2)
subroutine upd_glob_k(icodt, icodr, iskew, ibfv, npc, tf, vel, xframe, rby, x, skew, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nsc, isij, nmc, imij, nss, iss, nint2, iint2, nsc2, isij2, nss2, iss2, ipari, intbuf_tab, nddl, nnz, iadk, jdik, diag_k, lt_k, ndof, iddl, ikc, ud, b, nkud, ikud, bkud, nmc2, imij2, nt_rw, rd, lj, irbe3, lrbe3, frbe3, iss3, irbe2, lrbe2, isb2, nsrb2)