193#include "implicit_f.inc"
197#include "com01_c.inc"
198#include "com08_c.inc"
199#include "impl1_c.inc"
200#include "impl2_c.inc"
201#include "com04_c.inc"
205 INTEGER NODFT,NODLT,NDT
208 . d(3,*),dr(3,*),v(3,*),vr(3,*)
214 . adt,adt1,bdt,bdti,dt3
216 IF (imconv<=-2.AND..NOT.(ninvel>0.AND.ncycle==0))
THEN
219 bdt = one/(half-dy_g+dy_b)/dt3
222 dy_a(1,i)=bdt*dy_v(1,i)-bdti*dy_d(1,i)
223 dy_a(2,i)=bdt*dy_v(2,i)-bdti*dy_d(2,i)
224 dy_a(3,i)=bdt*dy_v(3,i)-bdti*dy_d(3,i)
228 dy_ar(1,i)=bdt*dy_vr(1,i)-bdti*dy_dr(1,i)
229 dy_ar(2,i)=bdt*dy_vr(2,i)-bdti*dy_dr(2,i)
230 dy_ar(3,i)=bdt*dy_vr(3,i)-bdti*dy_dr(3,i)
234 bdti = one/dt2/dt2/dy_b
236 dy_a(1,i)=bdti*(d(1,i)-dy_d(1,i))
237 dy_a(2,i)=bdti*(d(2,i)-dy_d(2,i))
238 dy_a(3,i)=bdti*(d(3,i)-dy_d(3,i))
242 dy_ar(1,i)=bdti*(dr(1,i)-dy_dr(1,i))
243 dy_ar(2,i)=bdti*(dr(2,i)-dy_dr(2,i))
244 dy_ar(3,i)=bdti*(dr(3,i)-dy_dr(3,i))
255 bdt = (half-dy_b)*dt3*dt3
257 v(1,i)=dy_v(1,i)+adt1*dy_a(1,i)
258 v(2,i)=dy_v(2,i)+adt1*dy_a(2,i)
259 v(3,i)=dy_v(3,i)+adt1*dy_a(3,i)
261 dy_v(1,i)=v(1,i)+adt*dy_a(1,i)
262 dy_v(2,i)=v(2,i)+adt*dy_a(2,i)
263 dy_v(3,i)=v(3,i)+adt*dy_a(3,i)
265 dy_d(1,i)=dt3*v(1,i)+bdt*dy_a(1,i)
266 dy_d(2,i)=dt3*v(2,i)+bdt*dy_a(2,i)
267 dy_d(3,i)=dt3*v(3,i)+bdt*dy_a(3,i)
271 vr(1,i)=dy_vr(1,i)+adt1*dy_ar(1,i)
272 vr(2,i)=dy_vr(2,i)+adt1*dy_ar(2,i)
273 vr(3,i)=dy_vr(3,i)+adt1*dy_ar(3,i)
275 dy_vr(1,i)=vr(1,i)+adt*dy_ar(1,i)
276 dy_vr(2,i)=vr(2,i)+adt*dy_ar(2,i)
277 dy_vr(3,i)=vr(3,i)+adt*dy_ar(3,i)
279 dy_dr(1,i)=dt3*vr(1,i)+bdt*dy_ar(1,i)
280 dy_dr(2,i)=dt3*vr(2,i)+bdt*dy_ar(2,i)
281 dy_dr(3,i)=dt3*vr(3,i)+bdt*dy_ar(3,i)
734 2 V ,X ,SKEWS ,AR ,VR ,
735 3 SENSOR_TAB,WEIGHT ,WFEXC ,IADS_F ,
736 4 FSKY ,IGRV ,AGRV ,MS ,IN ,
737 5 LGRAV ,ITASK ,NRBYAC ,IRBYAC ,NPBY ,
738 6 RBY ,FR_ELEM ,IAD_ELEM,NDDL ,NNZK ,
739 7 IDIV ,H3D_DATA,CPTREAC ,FTHREAC,NODREAC,
740 8 NSENSOR ,TH_SURF ,DPL0CLD,
741 9 VEL0CLD ,D ,DR ,NUMNOD ,NSURF ,
742 A NFUNCT ,NCONLD ,NGRAV ,NINVEL ,STF ,NUMSKW ,
748 use python_funct_mod,
only: python_
757#include "implicit_f.inc"
761#include "com01_c.inc"
762#include "com08_c.inc"
763#include "impl1_c.inc"
764#include "param_c.inc"
765#include "timeri_c.inc"
766#include "impl2_c.inc"
770 type(python_),
intent(inout) :: python
771 INTEGER ,
INTENT(IN) :: NSENSOR,NUMNOD,NSURF,NFUNCT,NCONLD,NGRAV,NINVEL
772 INTEGER,
INTENT(IN) :: STF
773 INTEGER,
INTENT(IN) :: SNPC
774 INTEGER,
INTENT(IN) :: NUMSKW
775 INTEGER ITASK,NPC(SNPC), IBCL(*), NPBY(NNPBY,*), IADS_F(*),
776 . IGRV(*),WEIGHT(*),LGRAV(*),IDIV,
778 INTEGER FR_ELEM(*),IAD_ELEM(2,*),NRBYAC,IRBYAC(*),NDDL ,NNZK
780 . X(3,*) ,V(3,*) ,VR(3,*),MS(*) ,AGRV(*),
781 . TF(*) ,FORC(*) ,RBY(NRBY,*),IN(*),
782 . A(3,*) ,AR(3,*),WFEXC,FSKY(*),FTHREAC(6,*)
783 TYPE(H3D_DATABASE) :: H3D_DATA
784 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) :: SENSOR_TAB
785 TYPE (TH_SURF_) ,
INTENT(INOUT) :: TH_SURF
786 TYPE (SKEW_),
INTENT(INOUT) :: SKEWS
787 my_real,
INTENT(IN) ::
788 . dpl0cld(6,nconld),vel0cld(6,nconld),
789 . d(3,numnod),dr(3,numnod)
790 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
794 INTEGER I,J,N, NCL_MAX,LBAND,NTMP,NODFT,NODLT,IER1,IER2
796 . TMP,ADT,BDT,BDTI,DUMMY_FEXT(3,1)
804 ALLOCATE(dy_diak0(nddl),dy_ltk0(nnzk),stat=ier1)
808 IF ((ier1+ier2)/=0)
THEN
809 CALL ancmsg(msgid=19,anmode=aninfo,
810 . c1=
'FOR IMPLICIT DYNAMIC')
814 IF (hht_a/=zero)
THEN
815 ALLOCATE(dy_r0(nddl),dy_r1(nddl),stat=ier1)
818 CALL ancmsg(msgid=19,anmode=aninfo,
819 . c1=
'FOR IMPLICIT DYNAMIC')
826 bdt = (half-dy_b)*dt0_imp
827 bdti =one/(bdt-adt*dt0_imp)
833 v(1,n) = bdti*(dy_v(1,n)*bdt-dy_d(1,n)*adt)
834 v(2,n) = bdti*(dy_v(2,n)*bdt-dy_d(2,n)*adt)
835 v(3,n) = bdti*(dy_v(3,n)*bdt-dy_d(3,n)*adt)
843 vr(1,n) = bdti*(dy_vr(1,n)*bdt-dy_dr(1,n)*adt)
844 vr(2,n) = bdti*(dy_vr(2,n)*bdt-dy_dr(2,n)*adt)
845 vr(3,n) = bdti*(dy_vr(3,n)*bdt-dy_dr(3,n)*adt)
850 IF (tt==dt2.OR.impl_s0==0)
THEN
853 IF (tt==dt2) tt = zero
856 CALL force_imp(ibcl ,forc ,snpc ,npc ,tf ,
857 2 dy_a ,v ,x ,skews ,
858 3 dy_ar ,vr ,nsensor ,sensor_tab ,wfexc ,
859 4 iads_f ,fsky ,dummy_fext ,h3d_data ,cptreac ,
860 5 fthreac ,nodreac ,th_surf ,
861 6 dpl0cld ,vel0cld ,d ,dr ,nconld ,
862 7 numnod ,nfunct ,stf ,wfext)
864 DO i=iad_elem(1,1),iad_elem(1,nspmd+1)-1
866 tmp = abs(dy_a(1,j))+abs(dy_a(2,j))+abs(dy_a(3,j))+
867 . abs(dy_ar(1,j))+abs(dy_ar(2,j))+abs(dy_ar(3,j))
868 IF (tmp>zero) ncl_max = ncl_max + 1
876 lband = iad_elem(1,nspmd+1)-iad_elem(1,1)
882 CALL spmd_sumf_a(dy_a,dy_ar,iad_elem,fr_elem,ntmp,lband)
888 2 v ,x ,skews%SKEW ,ms,wfexc,
889 3 nsensor,sensor_tab,weight,lgrav,itask,
890 4 nrbyac,irbyac,npby ,rby, python)
896 dy_a(1,n) = (dy_a(1,n) + a(1,n))* tmp
897 dy_a(2,n) = (dy_a(2,n) + a(2,n))* tmp
898 dy_a(3,n) = (dy_a(3,n) + a(3,n))* tmp
905 dy_ar(1,n) = (dy_ar(1,n) + ar(1,n))* tmp
906 dy_ar(2,n) = (dy_ar(2,n) + ar(2,n))* tmp
907 dy_ar(3,n) = (dy_ar(3,n) + ar(3,n))* tmp
911 IF (tt==zero) tt = dt2
916 bdt = (half-dy_b)*dt2*dt2
918 dy_v(1,n)=v(1,n)+adt*dy_a(1,n)
919 dy_v(2,n)=v(2,n)+adt*dy_a(2,n)
920 dy_v(3,n)=v(3,n)+adt*dy_a(3,n)
922 dy_d(1,n)=dt2*v(1,n)+bdt*dy_a(1,n)
923 dy_d(2,n)=dt2*v(2,n)+bdt*dy_a(2,n)
924 dy_d(3,n)=dt2*v(3,n)+bdt*dy_a(3,n)
928 dy_vr(1,n)=vr(1,n)+adt*dy_ar(1,n)
929 dy_vr(2,n)=vr(2,n)+adt*dy_ar(2,n)
930 dy_vr(3,n)=vr(3,n)+adt*dy_ar(3,n)
932 dy_dr(1,n)=dt2*vr(1,n)+bdt*dy_ar(1,n)
933 dy_dr(2,n)=dt2*vr(2,n)+bdt*dy_ar(2,n)
934 dy_dr(3,n)=dt2*vr(3,n)+bdt*dy_ar(3,n)
941 bdti = one/dt2/dt2/dy_b
944 dy_a(1,n) = -bdti*dy_d(1,n)
945 dy_a(2,n) = -bdti*dy_d(2,n)
946 dy_a(3,n) = -bdti*dy_d(3,n)
950 dy_ar(1,n) = -bdti*dy_dr(1,n)
951 dy_ar(2,n) = -bdti*dy_dr(2,n)
952 dy_ar(3,n) = -bdti*dy_dr(3,n)
958 dy_a(1,n) = -bdti*v(1,n)
959 dy_a(2,n) = -bdti*v(2,n)
960 dy_a(3,n) = -bdti*v(3,n)
964 dy_ar(1,n) = -bdti*vr(1,n)
965 dy_ar(2,n) = -bdti*vr(2,n)
966 dy_ar(3,n) = -bdti*vr(3,n)
991 2 V ,X ,SKEWS ,AR ,VR ,
992 3 SENSOR_TAB,WEIGHT,WFEXT ,IADS_F ,
993 4 FSKY ,IGRV ,AGRV ,MS ,IN ,
994 5 LGRAV ,ITASK ,NRBYAC,IRBYAC ,NPBY ,
995 6 RBY ,IBFV ,VEL ,D ,DR ,
996 7 IKC ,IDDL ,IFRAME,XFRAME ,NDOF ,
997 8 H3D_DATA,CPTREAC,FTHREAC,NODREAC,NSENSOR,
999 A VEL0CLD, NUMNOD,NSURF,NFUNCT,NCONLD,
1000 B NGRAV,NFXVEL,STF,NUMSKW,python)
1009 use python_funct_mod,
only: python_
1013#include "implicit_f.inc"
1017#include "com01_c.inc"
1018#include "com08_c.inc"
1019#include "param_c.inc"
1020#include "timeri_c.inc"
1021#include "impl1_c.inc"
1025 type(python_),
intent(inout) :: python
1026 INTEGER ,
INTENT(IN) :: NSENSOR,NUMNOD,NSURF,NFUNCT,NCONLD,NGRAV,NFXVEL
1027 INTEGER ,
INTENT(IN) :: STF
1028 INTEGER ,
INTENT(IN) :: SNPC
1029 INTEGER ,
INTENT(IN) :: NUMSKW
1030 INTEGER ITASK,NPC(SNPC), IBCL(*), NPBY(NNPBY,*), IADS_F(*),
1031 . igrv(*),weight(*),lgrav(*),
1032 . iframe(liskn,*),ibfv(*),ikc(*) ,iddl(*),ndof(*),
1033 . cptreac,nodreac(*)
1034 INTEGER NRBYAC,IRBYAC(*)
1035 X(3,*) ,V(3,*) ,VR(3,*),MS(*) ,AGRV(*),
1036 . TF(*) ,FORC(*) ,RBY(NRBY,*),IN(*),
1037 . A(3,*) ,AR(3,*),FSKY(*),
1038 . VEL(LFXVELR,*), D(3,*), DR(3,*),XFRAME(NXFRAME,*),
1040 TYPE(H3D_DATABASE) :: H3D_DATA
1041 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) :: SENSOR_TAB
1042 TYPE (TH_SURF_) ,
INTENT(INOUT) :: TH_SURF
1043 TYPE(SKEW_),
INTENT(INOUT) :: SKEWS
1044 my_real,
INTENT(IN) :: DPL0CLD(6,NCONLD),VEL0CLD(6,NCONLD)
1045 DOUBLE PRECISION,
INTENt(INOUT) :: WFEXT
1049 INTEGER N,IBID,IW ,I,J,ND,J1
1050 my_real wfexc,dummy_fext(3,1)
1056 CALL force_imp( ibcl ,forc ,snpc ,npc ,tf ,
1058 3 ar ,vr ,nsensor ,sensor_tab ,wfexc ,
1059 4 iads_f ,fsky ,dummy_fext ,h3d_data ,cptreac ,
1060 5 fthreac ,nodreac ,th_surf ,
1061 6 dpl0cld ,vel0cld ,d ,dr ,nconld ,
1062 7 numnod ,nfunct ,stf ,wfext)
1064 wfext = wfext + wfexc*dt2
1068 2 v ,x ,skews%SKEW ,ms,wfexc,
1069 3 nsensor,sensor_tab,weight,lgrav,itask,
1070 5 nrbyac,irbyac,npby ,rby , python)
1071 wfext = wfext + wfexc*dt2
1074 CALL wfv_imp(ibfv ,npc ,tf ,vel ,sensor_tab,
1075 1 d ,dr ,ikc ,iddl ,nsensor ,
1076 2 skews%SKEW ,iframe ,xframe ,dy_a ,dy_ar ,
1077 3 x ,ndof ,ms ,in ,weight,
1079 wfext = wfext + wfexc
1088 . wfexc = wfexc +d(j,i)*(dy_dam(j,i)+dy_dam0(j,i))*half
1092 dy_dam0(1,i) = dy_dam(1,i)
1093 dy_dam0(2,i) = dy_dam(2,i)
1094 dy_dam0(3,i) = dy_dam(3,i)
1102 . wfexc = wfexc +dr(j,i)*(dy_damr(j,i)+dy_damr0(j,i))*half
1106 dy_damr0(1,i) = dy_damr(1,i)
1107 dy_damr0(2,i) = dy_damr(2,i)
1108 dy_damr0(3,i) = dy_damr(3,i)
1111 dy_edamp = dy_edamp + wfexc
1210 . WEIGHT,ICODR ,ISKEW ,SKEW )
1218#include "implicit_f.inc"
1222#include "com01_c.inc"
1223#include "com08_c.inc"
1224#include "param_c.inc"
1228 INTEGER NBY(*), WEIGHT(*),ICODR(*),ISKEW(*)
1230 . AM(3,*),IN(*),VR(3,*),RBY0(*),SKEW(LSKEW,*)
1234 INTEGER , NSN, I, N, J, K, LCOD, ISK
1235 my_real WA1, WA2, WA3, DD, VI(3),II1,,II3,II4,II5,II6,II7,II8,II9,
1236 . vid(3),rbyd(9),vj(3),rbz(9),
1237 . det, il1,il2,il3,il4,il5,il6,il7,il8,il9,
1245 am(1,m) = am(1,m) * weight(m)
1246 am(2,m) = am(2,m) * weight(m)
1247 am(3,m) = am(3,m) * weight(m)
1250 am(1,m) = am(1,m) + abs(in(m))*dy_ar(1,m)
1251 am(2,m) = am(2,m) + abs(in(m))*dy_ar(2,m)
1252 am(3,m) = am(3,m) + abs(in(m))*dy_ar(3,m)
1257 rby(10) =
max(rby(10),in(m))
1258 rby(11) =
max(rby(11),in(m))
1259 rby(12) =
max(rby(12),in(m))
1265 vi(1)=rby(1)*vr(1,m)+rby(2)*vr(2,m)+rby(3)*vr(3,m)
1266 vi(2)=rby(4)*vr(1,m)+rby(5)*vr(2,m)+rby(6)*vr(3,m)
1267 vi(3)=rby(7)*vr(1,m)+rby(8)*vr(2,m)+rby(9)*vr(3,m)
1281 rby(17)=rby(1)*ii1 + rby(4)*ii4 + rby(7)*ii7
1282 rby(18)=rby(1)*ii2 + rby(4)*ii5 + rby(7)*ii8
1283 rby(19)=rby(1)*ii3 + rby(4)*ii6 + rby(7)*ii9
1284 rby(20)=rby(2)*ii1 + rby(5)*ii4 + rby(8)*ii7
1285 rby(21)=rby(2)*ii2 + rby(5)*ii5 + rby(8)*ii8
1286 rby(22)=rby(2)*ii3 + rby(5)*ii6 + rby(8)*ii9
1287 rby(23)=rby(3)*ii1 + rby(6)*ii4 + rby
1288 rby(24)=rby(3)*ii2 + rby(6)*ii5 + rby(9)*ii8
1289 rby(25)=rby(3)*ii3 + rby(6)*ii6 + rby(9)*ii9
1291 wa1=rby(17)*vr(1,m)+rby(18)*vr(2,m)+rby(19)*vr(3,m)
1292 wa2=rby(20)*vr(1,m)+rby(21)*vr(2,m)+rby(22)*vr(3,m)
1293 wa3=rby(23)*vr(1,m)+rby(24)*vr(2,m)+rby(25)*vr(3,m)
1295 am(1,m)=am(1,m)-(wa2*vr(3,m)-wa3*vr(2,m))*weight(m)
1296 am(2,m)=am(2,m)-(wa3*vr(1,m)-wa1*vr(3,m))*weight(m)
1297 am(3,m)=am(3,m)-(wa1*vr(2,m)-wa2*vr(1,m))*weight(m)
1313 det=one/(rby(17)*rby(21)-rby(18)*rby(20))
1316 am(1,m)=( rby(21)*wa1-rby(20)*wa2)*det
1317 am(2,m)=(-rby(18)*wa1+rby(17)*wa2)*det
1320 det=one/(rby(17)*rby(25)-rby(19)*rby(23))
1323 am(1,m)=( rby(25)*wa1-rby(23)*wa2)*det
1325 am(3,m)=(-rby(19)*wa1+rby(17)*wa2)*det
1327 am(1,m)=-dy_ar(1,m)/rby(17)
1331 det=one/(rby(21)*rby(25)-rby(22)*rby(24))
1335 am(2,m)=( rby(25)*wa1-rby(24)*wa2)*det
1336 am(3,m)=(-rby(22)*wa1+rby(21)*wa2)*det
1339 am(2,m)=-dy_ar(2,m)/rby(21)
1344 am(3,m)=-dy_ar(3,m)/rby(25)
1362 am(1,m)=skew(1,isk)*wa1+skew(2,isk)*wa2+skew(3,isk)*wa3
1363 am(2,m)=skew(4,isk)*wa1+skew(5,isk)*wa2+skew(6,isk)*wa3
1364 am(3,m)=skew(7,isk)*wa1+skew(8,isk)*wa2+skew(9,isk)*wa3
1384 ii1=rby(17)*skew(1,isk)+rby(18)*skew(2,isk)+rby(19)*skew(3,isk)
1385 ii2=rby(17)*skew(4,isk)+rby(18)*skew(5,isk)+rby(19)*skew(6,isk)
1386 ii4=rby(20)*skew(1,isk)+rby(21)*skew(2,isk)+rby(22)*skew(3,isk)
1387 ii5=rby(20)*skew(4,isk)+rby(21)*skew(5,isk)+rby(22)*skew(6,isk)
1388 ii7=rby(23)*skew(1,isk)+rby(24)*skew(2,isk)+rby(25)*skew(3,isk)
1389 ii8=rby(23)*skew(4,isk)+rby(24)*skew(5,isk)+rby(25)*skew(6,isk)
1390 il1=skew(1,isk)*ii1+skew(2,isk)*ii4+skew(3,isk)*ii7
1391 il2=skew(1,isk)*ii2+skew(2,isk)*ii5+skew(3,isk)*ii8
1392 il4=skew(4,isk)*ii1+skew(5,isk)*ii4+skew(6,isk)*ii7
1393 il5=skew(4,isk)*ii2+skew(5,isk)*ii5+skew(6,isk)*ii8
1395 det=one/(il1*il5-il2*il4)
1398 am(1,m)=( il5*wa1-il4*wa2)*det
1399 am(2,m)=(-il2*wa1+il1*wa2)*det
1402 ii1=rby(17)*skew(1,isk)+rby(18)*skew(2,isk)+rby(19)*skew(3,isk)
1403 ii3=rby(17)*skew(7,isk)+rby(18)*skew(8,isk)+rby(19)*skew(9,isk)
1404 ii4=rby(20)*skew(1,isk)+rby(21)*skew(2,isk)+rby(22)*skew(3,isk)
1405 ii6=rby(20)*skew(7,isk)+rby(21)*skew(8,isk)+rby(22)*skew(9,isk)
1406 ii7=rby(23)*skew(1,isk)+rby(24)*skew(2,isk)+rby(25)*skew(3,isk)
1407 ii9=rby(23)*skew(7,isk)+rby(24)*skew(8,isk)+rby(25)*skew(9,isk)
1408 il1=skew(1,isk)*ii1+skew(2,isk)*ii4+skew(3,isk)*ii7
1409 il3=skew(1,isk)*ii3+skew(2,isk)*ii6+skew(3,isk)*ii9
1410 il7=skew(7,isk)*ii1+skew(8,isk)*ii4+skew(9,isk)*ii7
1411 il9=skew(7,isk)*ii3+skew(8,isk)*ii6+skew(9,isk)*ii9
1413 det=one/(il1*il9-il3*il7)
1416 am(1,m)=( il9*wa1-il7*wa2)*det
1418 am(3,m)=(-il3*wa1+il1*wa2)*det
1420 ii1=rby(17)*skew(1,isk)+rby(18)*skew(2,isk)+rby(19)*skew(3,isk)
1421 ii4=rby(20)*skew(1,isk)+rby(21)*skew(2,isk)+rby(22)*skew(3,isk)
1422 ii7=rby(23)*skew(1,isk)+rby(24)*skew(2,isk)+rby(25)*skew(3,isk)
1423 il1=skew(1,isk)*ii1+skew(2,isk)*ii4+skew(3,isk)*ii7
1425 am(1,m)=-dy_ar(1,m)/il1
1429 ii2=rby(17)*skew(4,isk)+rby(18)*skew(5,isk)+rby(19)*skew(6,isk)
1430 ii3=rby(17)*skew(7,isk)+rby(18)*skew(8,isk)+rby(19)*skew(9,isk)
1431 ii5=rby(20)*skew(4,isk)+rby(21)*skew(5,isk)+rby(22)*skew(6,isk)
1432 ii6=rby(20)*skew(7,isk)+rby(21)*skew(8,isk)+rby(22)*skew(9,isk)
1433 ii8=rby(23)*skew(4,isk)+rby(24)*skew(5,isk)+rby(25)*skew(6,isk)
1434 ii9=rby(23)*skew(7,isk)+rby(24)*skew(8,isk)+rby(25)*skew(9,isk)
1435 il5=skew(4,isk)*ii2+skew(5,isk)*ii5+skew(6,isk)*ii8
1436 il6=skew(4,isk)*ii3+skew(5,isk)*ii6+skew(6,isk)*ii9
1437 il8=skew(7,isk)*ii2+skew(8,isk)*ii5+skew(9,isk)*ii8
1438 il9=skew(7,isk)*ii3+skew(8,isk)*ii6+skew(9,isk)*ii9
1440 det=one/(il5*il9-il6*il8)
1444 am(2,m)=( il9*wa1-il8*wa2)*det
1445 am(3,m)=(-il6*wa1+il5*wa2)*det
1447 ii2=rby(17)*skew(4,isk)+rby(18)*skew(5,isk)+rby(19)*skew(6,isk)
1448 ii5=rby(20)*skew(4,isk)+rby(21)*skew(5,isk)+rby(22)*skew(6,isk)
1449 ii8=rby(23)*skew(4,isk)+rby(24)*skew(5,isk)+rby(25)*skew(6,isk)
1450 il5=skew(4,isk)*ii2+skew(5,isk)*ii5+skew(6,isk)*ii8
1453 am(2,m)=-dy_ar(2,m)/il5
1456 ii3=rby(17)*skew(7,isk)+rby(18)*skew(8,isk)+rby(19)*skew(9,isk)
1457 ii6=rby(20)*skew(7,isk)+rby(21)*skew(8,isk)+rby(22)*skew(9,isk)
1458 ii9=rby(23)*skew(7,isk)+rby(24)*skew(8,isk)+rby(25)*skew(9,isk)
1459 il9=skew(7,isk)*ii3+skew(8,isk)*ii6+skew(9,isk)*ii9
1463 am(3,m)=-dy_ar(3,m)/il9
1473 am(1,m)=skew(1,isk)*wa1+skew(4,isk)*wa2+skew(7,isk)*wa3
1474 am(2,m)=skew(2,isk)*wa1+skew(5,isk)*wa2+skew
1475 am(3,m)=skew(3,isk)*wa1+skew(6,isk)*wa2+skew(9,isk)*wa3
1484 am(1,m)=rby(1)*wa1+rby(2)*wa2+rby(3)*wa3
1485 am(2,m)=rby(4)*wa1+rby(5)*wa2+rby(6)*wa3
1486 am(3,m)=rby(7)*wa1+rby(8)*wa2+rby(9)*wa3
1488 vi(1)=rby(1)*vr(1,m)+rby(2)*vr(2,m)+rby(3)*vr(3,m)
1489 vi(2)=rby(4)*vr(1,m)+rby(5)*vr(2,m)+rby(6)*vr(3,m)
1490 vi(3)=rby(7)*vr(1,m)+rby(8)*vr(2,m)+rby(9)*vr(3,m)
1496 am(1,m) = am(1,m) - (rby(11)-rby(12))*vi(2)*vi(3)*weight(m)
1497 am(2,m) = am(2,m) - (rby(12)-rby(10))*vi(3)*vi(1)*weight(m)
1498 am(3,m) = am(3,m) - (rby(10)-rby(11))*vi(1)*vi(2)*weight(m)
1503 wa1 = am(1,m)*rby(10)
1504 wa2 = am(2,m)*rby(11)
1505 wa3 = am(3,m)*rby(12)
1507 am(1,m)=rby(1)*wa1+rby(4)*wa2+rby(7)*wa3
1508 am(2,m)=rby(2)*wa1+rby(5)*wa2+rby(8)*wa3
1509 am(3,m)=rby(3)*wa1+rby(6)*wa2+rby(9)*wa3
1752 . DIAG_K ,IADK ,JDIK ,LT_K ,WEIGHT ,
1753 1 RBY ,X ,SKEW ,LPBY ,NPBY ,
1754 2 NRBYAC ,IRBYAC ,NINT2 ,IINT2 ,IPARI ,
1755 3 INTBUF_TAB ,IRBE3 ,LRBE3 ,FRBE3 ,
1756 4 IRBE2 ,LRBE2 ,V ,VR ,NDDL ,
1757 5 FR_ELEM,IAD_ELEM,MS ,IN )
1766#include "implicit_f.inc"
1770#include "com01_c.inc"
1771#include "com04_c.inc"
1772#include "param_c.inc"
1773#include "impl2_c.inc"
1777 INTEGER NODFT,NODLT,IDDL(*) ,NDOF(*),IADK(*),
1778 . IKC(*),JDIK(*),NDDL ,FR_ELEM(*),IAD_ELEM(2,*)
1779 INTEGER NINT2 ,IINT2(*),LPBY(*),NPBY(NNPBY,*),
1780 . IPARI(NPARI,*), NRBYAC,IRBYAC(*)
1781 INTEGER WEIGHT(*),IRBE3(*),LRBE3(*),IRBE2(*),LRBE2(*)
1784 . DIAG_K(*),V(3,*),VR(3,*),LT_K(*),FRBE3(*),
1785 . RBY(NRBY,*) ,X(3,*) ,SKEW(*),MS(*),IN(*)
1786 TYPE(intbuf_struct_) INTBUF_TAB(*)
1790 INTEGER I,J,ND,NNZ,NKC,N,ID,JR,JI,JB,K1
1792 . U(NDDL),W(NDDL),ADT1,MKF,MKM,TMP
1794 CALL IMP_SETB(V ,VR ,IDDL ,NDOF ,U )
1807 mkf = abs(ms(i))*weight(i)
1810 tmp=dampa_imp*mkf*v(j,i)+dampb_imp*w(id)
1818 mkf = abs(ms(i))*weight(i)
1819 mkm = abs(in(i))*weight(i)
1824 tmp=dampa_imp*mkm*vr(jr,i)+dampb_imp*w(id)
1828 tmp=dampa_imp*mkf*v(j,i)+dampb_imp*w(id)
1838 CALL i2_impr1(ipari(1,n),intbuf_tab(n) ,
1839 . x ,ndof ,iddl ,w )
1843 1 irbe2 ,lrbe2 ,x ,skew ,ndof ,
1848 1 irbe3 ,lrbe3 ,frbe3 ,x ,skew ,
1849 2 ndof ,iddl ,w ,weight)
1853 k1=irbyac(i+nrbykin)+1
1854 CALL rby_impr1(x, rby(1,n),lpby(k1),npby(1,n),
1860 CALL i2_impr2(ipari(1,n),intbuf_tab(n) ,dy_dam ,dy_damr,
1861 . x ,ndof ,iddl ,w )
1865 1 irbe3 ,lrbe3 ,frbe3 ,x ,skew ,
1866 2 ndof ,iddl ,w ,weight,dy_dam ,
1871 k1=irbyac(i+nrbykin)+1
1872 CALL rby_impr2(x, rby(1,n),lpby(k1),npby(1,n),
1873 1 ndof ,iddl ,w ,dy_dam ,dy_damr)
1890 nd = iad_elem(1,nspmd+1)-iad_elem(1,1)
1896 CALL spmd_sumf_a(dy_dam,dy_damr,iad_elem,fr_elem,jr,nd)
1957 . DIAG_K ,IADK ,JDIK ,LT_K ,WEIGHT ,
1958 1 RBY ,X ,SKEW ,LPBY ,NPBY ,
1959 2 NRBYAC ,IRBYAC ,NINT2 ,IINT2 ,IPARI ,
1960 3 INTBUF_TAB ,IRBE3 ,LRBE3 ,FRBE3 ,
1961 4 IRBE2 ,LRBE2 ,V ,VR ,NDDL ,
1962 5 FR_ELEM,IAD_ELEM,MS ,IN )
1971#include "implicit_f.inc"
1975#include "com01_c.inc"
1976#include "com04_c.inc"
1977#include "param_c.inc"
1981 INTEGER NODFT,NODLT,IDDL(*) ,NDOF(*),IADK(*),
1982 . IKC(*),JDIK(*),NDDL ,FR_ELEM(*),IAD_ELEM(2,*)
1983 INTEGER NINT2 ,IINT2(*),LPBY(*),NPBY(NNPBY,*),
1984 . (NPARI,*), NRBYAC,IRBYAC(*)
1985 INTEGER WEIGHT(*),IRBE3(*),LRBE3(*),IRBE2(*),LRBE2(*)
1988 . DIAG_K(*),V(3,*),VR(3,*),LT_K(*),FRBE3(*),
1989 . RBY(,*) ,X(3,*) ,SKEW(*),MS(*),IN(*)
1991 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
1995 INTEGER I,J,ND,NNZ,NKC,N,ID,JR,JI,JB,K1
1997 . u(nddl),w(nddl),adt1,mkf,mkm,tmp
1999 CALL imp_setb(dy_d ,dy_dr ,iddl ,ndof ,u )
2003 nnz=iadk(nddl+1)-iadk(1)
2005 1 nddl ,nnz ,iadk,jdik ,diag_k,
2012 CALL i2_impr1(ipari(1,n),intbuf_tab(n) ,
2013 . x ,ndof ,iddl ,w )
2017 1 irbe2 ,lrbe2 ,x ,skew ,ndof ,
2022 1 irbe3 ,lrbe3 ,frbe3 ,x ,skew ,
2023 2 ndof ,iddl ,w ,weight)
2027 k1=irbyac(i+nrbykin)+1
2028 CALL rby_impr1(x, rby(1,n),lpby(k1),npby(1,n),
2034 CALL i2_impr2(ipari(1,n),intbuf_tab(n) ,dy_a ,dy_ar,
2035 . x ,ndof ,iddl ,w )
2039 1 irbe3 ,lrbe3 ,frbe3 ,x ,skew ,
2040 2 ndof ,iddl ,w ,weight,dy_a ,
2045 k1=irbyac(i+nrbykin)+1
2046 CALL rby_impr2(x, rby(1,n),lpby(k1),npby(1,n),
2047 1 ndof ,iddl ,w ,dy_a ,dy_ar)
2057 dy_a(j,i)=-tmp*w(id)
2066 DO j =1,
min(3,ndof(i))
2068 dy_a(j,i)=-tmp*w(id)
2076 dy_ar(j-3,i)=-tmp*w(id)
2083 nd = iad_elem(1,nspmd+1)-iad_elem(1,1)
2089 CALL spmd_sumf_a(dy_a,dy_ar,iad_elem,fr_elem,jr,nd)
subroutine dyna_ina(ibcl, forc, snpc, npc, tf, a, v, x, skews, ar, vr, sensor_tab, weight, wfexc, iads_f, fsky, igrv, agrv, ms, in, lgrav, itask, nrbyac, irbyac, npby, rby, fr_elem, iad_elem, nddl, nnzk, idiv, h3d_data, cptreac, fthreac, nodreac, nsensor, th_surf, dpl0cld, vel0cld, d, dr, numnod, nsurf, nfunct, nconld, ngrav, ninvel, stf, numskw, wfext, python)
subroutine dyna_wex(ibcl, forc, snpc, npc, tf, a, v, x, skews, ar, vr, sensor_tab, weight, wfext, iads_f, fsky, igrv, agrv, ms, in, lgrav, itask, nrbyac, irbyac, npby, rby, ibfv, vel, d, dr, ikc, iddl, iframe, xframe, ndof, h3d_data, cptreac, fthreac, nodreac, nsensor, th_surf, dpl0cld, vel0cld, numnod, nsurf, nfunct, nconld, ngrav, nfxvel, stf, numskw, python)