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 . (*)
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 REAL R4
69 TYPE(G_BUFEL_) ,POINTER :: GBUF
70
71 nn1 = 1
72 nn2 = nn1 + (numsph+maxpjet)
73
74
75
76 DO 490 ng=1,ngroup
78 2 mtn ,nel ,nft ,iad ,ity ,
79 3 npt ,jale ,ismstr ,jeul ,jtur ,
80 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
81 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
82 6 irep ,iint ,igtyp ,israt ,isrot ,
83 7 icsen ,isorth ,isorthg ,ifailure,jsms )
84 IF (ity == 51) THEN
85
86
87
88 lft=1
89 llt=nel
90 gbuf => elbuf_tab(ng)%GBUF
91 ialel=iparg(7,ng)+iparg(11,ng)
92 DO i=lft,llt
93 n = i + nft
94 IF(el2fa(nn1+n)/=0)THEN
95 IF(ialel==0)THEN
96 iprt=ipartsp(n)
97 mt =ipart(1,iprt)
98 VALUE=pm(89,mt)*gbuf%VOL(i)
99 ELSE
100 off =
min(gbuf%OFF(i),one)
101 VALUE=gbuf%RHO(i)*gbuf%VOL(i)*off
102 ENDIF
103 mas(el2fa(nn1+n)) = VALUE
104 ENDIF
105 ENDDO
106 ENDIF
107
108
109
110 490 CONTINUE
111
112 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)