35
36
37
39 USE elbufdef_mod
40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "vect01_c.inc"
48#include "com01_c.inc"
49#include "sphcom.inc"
50#include "scr17_c.inc"
51#include "param_c.inc"
52
53
54
55
57 . mas(*) ,pm(npropm,*),geo(npropg,*),x(3,*),d(3,*)
58 INTEGER IPARG(NPARG,*),EL2FA(*),IPART(LIPART1,*),
59 . IPARTSP(*)
60 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
61
62
63
64
66 . off, VALUE
67 INTEGER I, NG, NEL, N, MT,IALEL,NN1,NN2,IPRT
68 TYPE(G_BUFEL_) ,POINTER :: GBUF
69
70 nn1 = 1
71 nn2 = nn1 + (numsph+maxpjet)
72
73
74
75 DO 490 ng=1,ngroup
77 2 mtn ,nel ,nft ,iad ,ity ,
78 3 npt ,jale ,ismstr ,jeul ,jtur ,
79 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
80 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
81 6 irep ,iint ,igtyp ,israt ,isrot ,
82 7 icsen ,isorth ,isorthg ,ifailure,jsms )
83 IF (ity == 51) THEN
84
85
86
87 lft=1
88 llt=nel
89 gbuf => elbuf_tab(ng)%GBUF
90 ialel=iparg(7,ng)+iparg(11,ng)
91 DO i=lft,llt
92 n = i + nft
93 IF(el2fa(nn1+n)/=0)THEN
94 IF(ialel==0)THEN
95 iprt=ipartsp(n)
96 mt =ipart(1,iprt)
97 VALUE=pm(89,mt)*gbuf%VOL(i)
98 ELSE
99 off =
min(gbuf%OFF(i),one)
100 VALUE=gbuf%RHO(i)*gbuf%VOL(i)*off
101 ENDIF
102 mas(el2fa(nn1+n)) = VALUE
103 ENDIF
104 ENDDO
105 ENDIF
106
107
108
109 490 CONTINUE
110
111 RETURN
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)