32 SUBROUTINE surfmas(MS,IBUFN,ITY,AMASU,X,ID,ADDMAS,ADMID,TITR)
41#include "implicit_f.inc"
48 INTEGER IBUFN(*),ITY,ID,ADMID
49 my_real ms(*),amasu,x(3,*),addmas
50 CHARACTER(LEN=NCHARTITLE)::TITR
55 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,
56 . x21,y21,z21,x31,y31,z31,x42,y42,z42,
57 . x32,y32,z32,e3x,e3y,e3z,smass,sum,
area,
58 . a2,b2,c2,aa,bb,cc,ang1,ang2,ang3
90 sum=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
97 ms(ibufn(1))=ms(ibufn(1)) + smass * fourth
98 ms(ibufn(2))=ms(ibufn(2)) + smass * fourth
99 ms(ibufn(3))=ms(ibufn(3)) + smass * fourth
100 ms(ibufn(4))=ms(ibufn(4)) + smass * fourth
102 addmas = addmas + smass
104 ELSE IF(ity == 7)
THEN
128 a2 = x21**2 + y21**2 + z21**2
129 b2 = x32**2 + y32**2 + z32**2
130 c2 = x31**2 + y31**2 + z31**2
135 ang1 = acos((a2 + c2 - b2)/(two * aa * cc)) / pi
136 ang2 = acos((a2 + b2 - c2)/(two * aa * bb)) / pi
137 ang3 = acos((b2 + c2 - a2)/(two * bb * cc)) / pi
139 IF ( ( (a2 + c2 - b2)/(2. * aa * cc) <= -one ) .OR.
140 . ( (a2 + c2 - b2)/(2. * aa * cc) >= one ) .OR.
141 . ( (a2 + b2 - c2)/(2. * aa * bb) <= -one ) .OR.
142 . ( (a2 + b2 - c2)/(2. * aa * bb) >= one ) .OR.
143 . ( (b2 + c2 - a2)/(2. * bb * cc) <= -one ) .OR.
144 . ( (b2 + c2 - a2)/(2. * bb * cc) >= one ) )
THEN
155 sum=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
160 ms(ibufn(1))=ms(ibufn(1)) + smass * ang1
161 ms(ibufn(2))=ms(ibufn(2)) + smass * ang2
162 ms(ibufn(3))=ms(ibufn(3)) + smass * ang3
166 addmas = addmas + smass
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine surfmas(ms, ibufn, ity, amasu, x, id, addmas, admid, titr)