41
42
43
44 USE python_funct_mod
45 USE elbufdef_mod
46 use element_mod , only : nixs,nixq
47
48
49
50#include "implicit_f.inc"
51
52
53
54#include "com01_c.inc"
55#include "com04_c.inc"
56#include "param_c.inc"
57#include "com08_c.inc"
58
59
60
61 TYPE(PYTHON_), INTENT(inout) :: PYTHON
62 INTEGER LPRW(*), NPRW(*), IXS(NIXS,NUMELS),
63 . IXQ(NIXQ,NUMELQ),IPARG(NPARG,NGROUP),
64 . NPF(*),
65 . WEIGHT(*),IAD_ELEM(*), FR_ELEM(*),
66 . FR_WALL(NSPMD+2,*)
67 my_real x(3,numnod), a(3,numnod), v(3,numnod), w(3,numnod), rwbuf(nrwlp,*), ms
68 . fsav(nthvki,*),
69 . pm(npropm,nummat), tf(*)
70 TYPE(ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
71
72
73
74 INTEGER K, N, N2, N3, N4, ITYP, NE, NSN, IFUNC, NPOINT, NTAG(NUMNOD)
76 INTEGER :: ISMOOTH
77
78
79
80
81
82
83
84 IF(nrwall > 0)THEN
85 k=1
86 DO n=1,nrwall
87 n2=n +nrwall
88 n3=n2+nrwall
89 n4=n3+nrwall
90 ityp=nprw(n4)
91 IF(ityp == -1)THEN
92 nsn =nprw(n)
93 ne =nint(rwbuf(8,n))
94 ifunc=nint(rwbuf(9,n))
95 time = tt * rwbuf(16,n)
96 ismooth = npf(2*nfunct+ifunc+1)
97 IF(ismooth >= 0) THEN
98 npoint=(npf(ifunc+1)-npf(ifunc))/2
99 CALL interp(tf(npf(ifunc)),time,npoint,temp,bid)
100 ELSE
101 ismooth = -ismooth
102 CALL python_call_funct1d(python, ismooth,time, temp)
103 ENDIF
104 temp = temp * rwbuf(10,n)
106 1 x ,v ,w ,rwbuf(1,n),lprw(k) ,
107 2 nsn ,nprw(n3) ,ms ,fsav(1,n) ,ixs ,
108 3 ixq ,elbuf_tab ,iparg ,pm ,
109 4 ntag ,lprw(k+nsn) ,ne ,temp ,rwbuf(11,n),
110 5 e ,a ,nprw(n2),weight ,iad_elem
111 6 fr_elem ,fr_wall(1,n))
112 k=k+nint(rwbuf(8,n))
113 ENDIF
114 k=k+nprw(n)
115 enddo
116 ENDIF
117 RETURN
subroutine interp(tf, tt, npoint, f, tg)
subroutine rgwath(x, v, w, rwl, nsw, nsn, msr, ms, fsav, ixs, ixq, elbuf_tab, iparg, pm, ntag, nelw, ne, temp, tstif, e, a, itied, weight, iad_elem, fr_elem, fr_wall)