32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "vect01_c.inc"
40#include "com01_c.inc"
41#include "com04_c.inc"
42#include "param_c.inc"
43#include "scry_c.inc"
44#include "sphcom.inc"
45
46
47
48 INTEGER NIX, NSIG, NUMS, NEL
49 INTEGER IX(NIX,*),PT(*),MAT(*)
50 my_real :: pm(npropm,*), sig(nel,6), sigi(nsig,*)
51 my_real,
DIMENSION(NEL) :: vol,off,eint,rho,epsp,fill
52 my_real,
DIMENSION(NEL) :: temp,tempel
53
54
55
56 INTEGER I,J,II,JJ,N,MA,IFLAGINI
57
58 DO i=lft,llt
59 iflagini = 0
60 ma=mat(i)
61 off(i) =one
62 IF(ma == 0)cycle
63 eint(i)=pm(23,ma)
64 rho(i) =pm(89,ma)
65 IF (tempel(i) > zero) THEN
66 temp(i) = tempel(i)
67 ELSE
68 temp(i) = pm(79,ma)
69 END IF
70
71 IF (isigi == 0) THEN
72
73 sig(i,1)=-pm(104,ma)
74 sig(i,2)=-pm(104,ma)
75 sig(i,3)=-pm(104,ma)
76
77 IF (jlag/=0 .AND. jsph == 0) THEN
78 vol(i) = vol(i) * ( rho(i) / pm(1,ma) )
79 ENDIF
80 IF (jeul+jale /= 0 .AND. pm(1,ma)/=zero) THEN
81 eint(i) = eint(i) * rho(i) / pm(1,ma)
82 ENDIF
83
84 fill(i)=one
85
86 ELSE
87
88 IF (abs(isigi)/=3.AND.abs(isigi)/=4.AND.abs(isigi)/=5) THEN
89 ii = i+nft
90 n = nint(sigi(7,ii))
91 IF(n == ix(nix,ii))THEN
92 jj = ii
93 iflagini = 1
94 ELSE
95 IF(jsph == 0)THEN
96 DO j = 1,
max(numsol+numquad,numels+numelq)
97 jj= j
98 n = nint(sigi(7,j))
99 IF(n==0)GOTO 200
100 IF(n==ix(nix,ii))THEN
101 iflagini = 1
102 GOTO 60
103 ENDIF
104 ENDDO
105 ELSE
106 DO j = 1,numsph
107 jj= j
108 n = nint(sigi(7,j))
109 IF(n==0)GOTO 200
110 IF(n==ix(nix,ii))THEN
111 iflagini = 1
112 GOTO 60
113 ENDIF
114 ENDDO
115 ENDIF
116 GOTO 200
117 60 CONTINUE
118 ENDIF
119 ELSE
120 ii=nft+i
121 n =ix(nix,ii)
122 jj=pt(ii)
123 IF (jj == 0)GOTO 200
124 iflagini = 1
125 END IF
126
127 IF (iflagini == 1)THEN
128 sig(i,1)=sigi(1,jj)
129 sig(i,2)=sigi(2,jj)
130 sig(i,3)=sigi(3,jj)
131 sig(i,4)=sigi(4,jj)
132 sig(i,5)=sigi(5,jj)
133 sig(i,6)=sigi(6,jj)
134 IF (isigi == 3.OR.isigi == 4.OR.isigi == 5) THEN
135 IF(sigi(8,jj)/=zero) THEN
136 IF(jlag/=0.AND.jsph == 0)THEN
137 vol(i) = sigi(8,jj)*vol(i) / pm(1,ma)
138 rho(i) = sigi(8,jj)
139 ELSE
140 rho(i) = sigi(8,jj)
141 ENDIF
142 ELSEIF (jlag/=0.AND.jsph == 0) THEN
143 vol(i) = vol(i) * rho(i) / pm(1,ma)
144 ENDIF
145
146 IF (sigi(10,jj)/=zero) epsp(i) = sigi(10,jj)
147 IF (sigi( 9,jj)/=zero) eint(i) = sigi(9,jj)
148
149 IF(sigi(11,jj)/=zero) fill(i)=sigi(11,jj)
150 ENDIF
151 ENDIF
152 200 CONTINUE
153 ENDIF
154 ENDDO
155
156 RETURN