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