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
56 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,
57 . x21,y21,z21,x31,y31,z31,x42,y42,z42,
58 . x32,y32,z32,e3x,e3y,e3z,smass,sum,
area,
59 . a2,b2,c2,aa,bb,cc,ang1,ang2,ang3
91 sum=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
98 ms(ibufn(1))=ms(ibufn(1)) + smass * fourth
99 ms(ibufn(2))=ms(ibufn(2)) + smass * fourth
100 ms(ibufn(3))=ms(ibufn(3)) + smass * fourth
101 ms(ibufn(4))=ms(ibufn(4)) + smass * fourth
103 addmas = addmas + smass
105 ELSE IF(ity == 7)
THEN
129 a2 = x21**2 + y21**2 + z21**2
130 b2 = x32**2 + y32**2 + z32**2
131 c2 = x31**2 + y31**2 + z31**2
136 ang1 = acos((a2 + c2 - b2)/(two * aa * cc)) / pi
137 ang2 = acos((a2 + b2 - c2)/(two * aa * bb)) / pi
138 ang3 = acos((b2 + c2 - a2)/(two * bb * cc)) / pi
140 IF ( ( (a2 + c2 - b2)/(2. * aa * cc) <= -one ) .OR.
141 . ( (a2 + c2 - b2)/(2. * aa * cc) >= one ) .OR.
142 . ( (a2 + b2 - c2)/(2. * aa * bb) <= -one ) .OR.
143 . ( (a2 + b2 - c2)/(2. * aa * bb) >= one ) .OR.
144 . ( (b2 + c2 - a2)/(2. * bb * cc) <= -one ) .OR.
145 . ( (b2 + c2 - a2)/(2. * bb * cc) >= one ) )
THEN
156 sum=sqrt(e3x*e3x+e3y*e3y+e3z*e3z)
161 ms(ibufn(1))=ms(ibufn(1)) + smass * ang1
162 ms(ibufn(2))=ms(ibufn(2)) + smass * ang2
163 ms(ibufn(3))=ms(ibufn(3)) + smass * ang3
167 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)