34
35
36
37 USE elbufdef_mod
38
39
40
41#include "implicit_f.inc"
42
43
44
45#include "vect01_c.inc"
46#include "mvsiz_p.inc"
47#include "com01_c.inc"
48#include "com04_c.inc"
49#include "scr17_c.inc"
50#include "param_c.inc"
51
52
53
54
55 my_real
56 . MAS(*) ,PM(NPROPM,*)
57 INTEGER IPARG(NPARG,*),IXS(NIXS,*),EL2FA(*),NBF,IPART(LIPART1,*),
58 . IPARTSP(*),ISPH3D
59 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
60
61
62
63 my_real
64 . EVAR(MVSIZ),
65 . OFF,VALUE
66 INTEGER I, NG, NEL, ISS, ISC,N, J, MLW,
67 . NN, K1, K2,JTURB,MT, IALEL,IPID,
68 . N1,N2,N3,N4,NN1,NN2,NN3,
69 . OFFSET,NFT_FA,N_FA,
70 . INOD, ISOLNOD, IPRT,
71 . JHBE, JIVF, JCLOSE, JPLASOL, IREP, IGTYP,
72 . ICSEN, ISORTHG, IFAILURE, IINT
73 TYPE(G_BUFEL_) ,POINTER :: GBUF
74 REAL R4
75
76 NN1 = 1
77 NN2 = 1
78 NN3 = NN2 + NUMELS
79
80
81
82 DO 490 NG=1,NGROUP
83 CALL INITBUF (IPARG ,NG ,
84 2 MLW ,NEL ,NFT ,IAD ,ITY ,
85 3 NPT ,JALE ,ISMSTR ,JEUL ,JTUR ,
86 4 JTHE ,JLAG ,JMULT ,JHBE ,JIVF ,
87 5 JPOR ,JCVT ,JCLOSE ,JPLASOL ,
88 6 IREP ,IINT ,IGTYP ,ISRAT ,ISROT ,
89 7 ICSEN ,ISORTH ,ISORTHG ,IFAILURE)
90 ISOLNOD = IPARG(28,NG)
91 DO OFFSET = 0,NEL-1,NVSIZ
92 NFT =IPARG(3,NG) + OFFSET
93 IAD =IPARG(4,NG)
94 LFT=1
95 LLT=MIN(NVSIZ,NEL-OFFSET)
96 NFT_FA = NFT
97
98
99
100.and. IF (ITY==1 MLW > 0) THEN
101 IALEL=IPARG(7,NG)+IPARG(11,NG)
102 GBUF => ELBUF_TAB(NG)%GBUF
103 DO 130 I=LFT,LLT
104 N = I + NFT
105 N_FA = I + NFT_FA
106 IF(EL2FA(NN2+N_FA)/=0)THEN
107 IF(IALEL==0)THEN
108 MT=IXS(1,N)
109 VALUE=PM(89,MT)*GBUF%VOL(I)
110 ELSE
111 OFF = MIN(GBUF%OFF(I),ONE)
112 VALUE=GBUF%RHO(I)*GBUF%VOL(I)*OFF
113 ENDIF
114 IF(ISOLNOD==16)THEN
115 VALUE = FOURTH*VALUE
116 MAS(EL2FA(NN2+N_FA)) = VALUE
117 MAS(EL2FA(NN2+N_FA)+1) = VALUE
118 MAS(EL2FA(NN2+N_FA)+2) = VALUE
119 MAS(EL2FA(NN2+N_FA)+3) = VALUE
120 ELSE
121 MAS(EL2FA(NN2+N_FA)) = VALUE
122 ENDIF
123 ENDIF
124 130 CONTINUE
125
126.AND..and. ELSEIF(ISPH3D==1ITY==51MLW > 0)THEN
127
128
129
130 GBUF => ELBUF_TAB(NG)%GBUF
131 IALEL=IPARG(7,NG)+IPARG(11,NG)
132 DO 140 I=LFT,LLT
133 N = I + NFT
134 N_FA = I + NFT_FA
135 IF(EL2FA(NN3+N_FA)/=0)THEN
136 IF(IALEL==0)THEN
137 IPRT=IPARTSP(N)
138 MT =IPART(1,IPRT)
139 VALUE=PM(89,MT)*GBUF%VOL(I)
140 ELSE
141 OFF = MIN(GBUF%OFF(I),ONE)
142 VALUE=GBUF%RHO(I)*GBUF%VOL(I)*OFF
143 ENDIF
144 MAS(EL2FA(NN3+N_FA)) = VALUE
145 ENDIF
146 140 CONTINUE
147
148 ELSE
149 ENDIF
150
151
152
153 END DO
154 490 CONTINUE
155
156
157 RETURN