726
727
728
730
731
732
733#include "implicit_f.inc"
734#include "comlock.inc"
735
736
737
738#include "mvsiz_p.inc"
739
740
741
742#include "com08_c.inc"
743#include "scr05_c.inc"
744#include "impl1_c.inc"
745
746
747
748 INTEGER JLT,INACTI,,MFROT, IFQ, NOINT,IRECT(4,*)
749 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
750 . CE_LOC(MVSIZ),INDEX(MVSIZ),NSVG(MVSIZ)
752 . stiglo,cand_p(*),frot_p(*), x(3,*),a(3,*), ms(*), v(3,*),
753 . cand_fx(*),cand_fy(*),cand_fz(*),alpha0,fric,scalk,icurv(3)
755 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
756 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
757 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
758 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
759 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
760 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz), stif(mvsiz),
761 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
762 . dxi(mvsiz),dyi(mvsiz),dzi(mvsiz),d(3,*)
764 . x1(mvsiz),y1(mvsiz),z1(mvsiz),
765 . x2(mvsiz),y2(mvsiz),z2(mvsiz),
766 . x3(mvsiz),y3(mvsiz),z3(mvsiz),
767 . x4(mvsiz),y4(mvsiz),z4(mvsiz),
768 . xi(mvsiz),yi(mvsiz),zi(mvsiz)
769
770
771
772 INTEGER I, J1, IG, J, JG , K0,NBINTER,K1S,K,IL,IE, NN, NI,NS
774 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz), fni(mvsiz),
775 . fxt(mvsiz),fyt(mvsiz),fzt(mvsiz),stif0(mvsiz),
776 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
777 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
778 . vx(mvsiz), vy(mvsiz), vz(mvsiz), vn(mvsiz),xmu(mvsiz),
779 . dx(mvsiz), dy(mvsiz), dz(mvsiz), dn0(mvsiz),
780 .
781 . vnx, vny, vnz, aa, crit,s2,dist,rdist,
782 . v2, fm2, fac,ff,alphi,
alpha,beta,
783 . fx, fy, fz, f2, mas2, m2sk, dti,ft,fn,fmax,ftn,
784 . h0, la1, la2, la3, la4,d1,d2,d3,d4,a1,a2,a3,a4, ff0,
785 . vv,ax1,ax2,ay1
786 .
area,p,vv1,vv2,v21,dmu, dti2,h00 ,a0x,a0y,a0z,rx,ry,rz,
787 . anx,any,anz,aan,aax,aay,aaz ,rr,rs,aaa ,gap2 ,pene2,prec
788 INTEGER NA1,NA2
789
790 IF (iresp==1) THEN
791 prec = fiveem4
792 ELSE
793 prec = em10
794 ENDIF
795
796
797
798 IF(inacti==5.OR.inacti==6)THEN
799 DO i=1,jlt
800 IF(stif(i)==zero)THEN
801 cand_p(index(i))=0
802 ENDIF
803 ENDDO
804 ENDIF
805
806
807
808 DO i=1,jlt
809 gap2=gapv(i)*gapv(i)
810
811 d1 =
max(zero, gap2 - p1(i))
812 d2 =
max(zero, gap2 - p2(i))
813 d3 =
max(zero, gap2 - p3(i))
814 d4 =
max(zero, gap2 - p4(i))
815 pene2 =
max(d1,d2,d3,d4)
816 IF (pene2<=zero) stif(i) = zero
817 ENDDO
818
819
820
821 DO i=1,jlt
822 d1 = sqrt(p1(i))
823 p1(i) =
max(zero, gapv(i) - d1)
824
825 d2 = sqrt(p2(i))
826 p2(i) =
max(zero, gapv(i) - d2)
827
828 d3 = sqrt(p3(i))
829 p3(i) =
max(zero, gapv(i) - d3)
830
831 d4 = sqrt(p4(i))
832 p4(i) =
max(zero, gapv(i) - d4)
833
834 a1 = p1(i)/
max(em20,d1)
835 a2 = p2(i)/
max(em20,d2)
836 a3 = p3(i)/
max(em20,d3)
837 a4 = p4(i)/
max(em20,d4)
838 n1(i) = a1*nx1(i) + a2*nx2(i) + a3*nx3(i) + a4*nx4(i)
839 n2(i) = a1*ny1(i) + a2*ny2(i) + a3*ny3(i) + a4*ny4(i)
840 n3(i) = a1*nz1(i) + a2*nz2(i) + a3*nz3(i) + a4*nz4(i)
841 ENDDO
842
843 DO i=1,jlt
844 IF(ix3(i)/=ix4(i))THEN
845 pene(i) =
max(p1(i),p2(i),p3(i),p4(i))
846
847 la1 = one - lb1(i) - lc1(i)
848 la2 = one - lb2(i) - lc2(i)
849 la3 = one - lb3(i) - lc3(i)
850 la4 = one - lb4(i) - lc4(i)
851
852 h0 = fourth *
853 . (p1(i)*la1 + p2(i)*la2 + p3(i)*la3 + p4(i)*la4)
854 h1(i) = h0 + p1(i) * lb1(i) + p4(i) * lc4(i)
855 h2(i) = h0 + p2(i) * lb2(i) + p1(i) * lc1(i)
856 h3(i) = h0 + p3(i) * lb3(i) + p2(i) * lc2(i)
857 h4(i) = h0 + p4(i) * lb4(i) + p3(i) * lc3(i)
858 h00 = one/
max(em20,h1(i) + h2(i) + h3(i) + h4(i))
859 h1(i) = h1(i) * h00
860 h2(i) = h2(i) * h00
861 h3(i) = h3(i) * h00
862 h4(i) = h4(i) * h00
863
864 ELSE
865 pene(i) = p1(i)
866 n1(i) = nx1(i)
867 n2(i) = ny1(i)
868 n3(i) = nz1(i)
869 h1(i) = lb1(i)
870 h2(i) = lc1(i)
871 h3(i) = one - lb1(i) - lc1(i)
872 h4(i) = zero
873 ENDIF
874 ENDDO
875
876
877
878 IF(icurv(1)==1)THEN
879
880 na1 = icurv(2)
881 DO i=1,jlt
882 rr = 1.e30
883 a0x = x(1,na1)
884 a0y = x(2,na1)
885 a0z = x(3,na1)
886
887 rx = x1(i)-a0x
888 ry = y1(i)-a0y
889 rz = z1(i)-a0z
890 rr =
min(rr , rx*rx + ry*ry + rz*rz)
891 rx = x2(i)-a0x
892 ry = y2(i)-a0y
893 rz = z2(i)-a0z
894 rr =
min(rr , rx*rx + ry*ry + rz*rz)
895 rx = x3(i)-a0x
896 ry = y3(i)-a0y
897 rz = z3(i)-a0z
898 rr =
min(rr , rx*rx + ry*ry + rz*rz)
899 IF(ix3(i)/=ix4(i))THEN
900 rx = x4(i)-a0x
901 ry = y4(i)-a0y
902 rz = z4(i)-a0z
903 rr =
min(rr , rx*rx + ry*ry + rz*rz)
904 ENDIF
905 rx = xi(i)-a0x
906 ry = yi(i)-a0y
907 rz = zi(i)-a0z
908 rs = sqrt(rx*rx + ry*ry + rz*rz)
909 rr = sqrt(rr)
910 IF(rs-rr+gapv(i)<0.)THEN
911 stif(i) = 0.
912 pene(i) = 0.
913 ELSEIF(rs-rr+gapv(i)<pene(i))THEN
914 pene(i) = rs-rr+gapv(i)
915 ENDIF
916 n1(i) = -rx
917 n2(i) = -ry
918 n3(i) = -rz
919 ENDDO
920 ELSEIF(icurv(1)==2)THEN
921
922 na1 = icurv(2)
923 na2 = icurv(3)
924 DO i=1,jlt
925 rr = 1.e30
926 a0x = x(1,na1)
927 a0y = x(2,na1)
928 a0z = x(3,na1)
929 anx = x(1,na2)-a0x
930 any = x(2,na2)-a0y
931 anz = x(3,na2)-a0z
932 aan = 1. / (anx*anx + any*any + anz*anz)
933
934 aax = x1(i)-a0x
935 aay = y1(i)-a0y
936 aaz = z1(i)-a0z
937 aaa = (aax*anx + aay*any + aaz*anz) * aan
938 rx = aax - aaa * anx
939 ry = aay - aaa * any
940 rz = aaz - aaa * anz
941 rr =
min(rr , rx*rx + ry*ry + rz*rz)
942 aax = x2(i)-a0x
943 aay = y2(i)-a0y
944 aaz = z2(i)-a0z
945 aaa = (aax*anx + aay*any + aaz*anz) * aan
946 rx = aax - aaa * anx
947 ry = aay - aaa * any
948 rz = aaz - aaa * anz
949 rr =
min(rr , rx*rx + ry*ry + rz*rz)
950 aax = x3(i)-a0x
951 aay = y3(i)-a0y
952 aaz = z3(i)-a0z
953 aaa = (aax*anx + aay*any + aaz*anz) * aan
954 rx = aax - aaa * anx
955 ry = aay - aaa * any
956 rz = aaz - aaa * anz
957 rr =
min(rr , rx*rx + ry*ry + rz*rz)
958 IF(ix3(i)/=ix4(i))THEN
959 aax = x4(i)-a0x
960 aay = y4(i)-a0y
961 aaz = z4(i)-a0z
962 aaa = (aax*anx + aay*any + aaz*anz) * aan
963 rx = aax - aaa * anx
964 ry = aay - aaa * any
965 rz = aaz - aaa * anz
966 rr =
min(rr , rx*rx + ry*ry + rz*rz)
967 ENDIF
968 aax = xi(i)-a0x
969 aay = yi(i)-a0y
970 aaz = zi(i)-a0z
971 aaa = (aax*anx + aay*any + aaz*anz) * aan
972 rx = aax - aaa * anx
973 ry = aay - aaa * any
974 rz = aaz - aaa * anz
975 rs = sqrt(rx*rx + ry*ry + rz*rz)
976 rr = sqrt(rr)
977 IF(rs-rr+gapv(i)<0.)THEN
978 stif(i) = 0.
979 pene(i) = 0.
980 ELSEIF(rs-rr+gapv(i)<pene(i))THEN
981 pene(i) = rs-rr+gapv(i)
982 n1(i) = -rx
983 n2(i) = -ry
984 n3(i) = -rz
985 ENDIF
986 ENDDO
987 ELSEIF(icurv(1) == 3)THEN
988
989 ENDIF
990
991 DO i=1,jlt
992 s2 = one/
max(em30,sqrt(n1(i)**2 + n2(i)**2 + n3(i)**2))
993 n1(i) = n1(i)*s2
994 n2(i) = n2(i)*s2
995 n3(i) = n3(i)*s2
996 ENDDO
997
998 DO i=1,jlt
999 dx(i) = dxi(i) - h1(i)*d(1,ix1(i)) - h2(i)*d(1,ix2(i))
1000 . - h3(i)*d(1,ix3(i)) - h4(i)*d(1,ix4(i))
1001 dy(i) = dyi(i) - h1(i)*d(2,ix1(i)) - h2(i)*d(2,ix2(i))
1002 . - h3(i)*d(2,ix3(i)) - h4(i)*d(2,ix4(i))
1003 dz(i) = dzi(i) - h1(i)*d(3,ix1(i)) - h2(i)*d(3,ix2(i))
1004 . - h3(i)*d(3,ix3(i)) - h4(i)*d(3,ix4(i))
1005 dn0(i) = n1(i)*dx(i) + n2(i)*dy(i) + n3(i)*dz(i)
1006 ENDDO
1007
1008 DO 500 i=1,jlt
1009 vx(i) = vxi(i) - h1(i)*v(1,ix1(i)) - h2(i)*v(1,ix2(i))
1010 . - h3(i)*v(1,ix3(i)) - h4(i)*v(1,ix4(i))
1011 vy(i) = vyi(i) - h1(i)*v(2,ix1(i)) - h2(i)*v(2,ix2(i))
1012 . - h3(i)*v(2,ix3(i)) - h4(i)*v(2,ix4(i))
1013 vz(i) = vzi(i) - h1(i)*v(3,ix1(i)) - h2(i)*v(3,ix2(i))
1014 . - h3(i)*v(3,ix3(i)) - h4(i)*v(3,ix4(i))
1015 vn(i) = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1016
1017 h0 = -.25*(h1(i) - h2(i) + h3(i) - h4(i))
1018 h0 =
min(h0,h2(i),h4(i))
1019 h0 =
max(h0,-h1(i),-h3(i))
1020 IF(ix3(i)==ix4(i))h0 = zero
1021 h1(i) = h1(i) + h0
1022 h2(i) = h2(i) - h0
1023 h3(i) = h3(i) + h0
1024 h4(i) = h4(i) - h0
1025 500 CONTINUE
1026
1027
1028
1029 IF(inacti==5)THEN
1030 DO i=1,jlt
1031
1032 cand_p(index(i))=
min(cand_p(index(i)),
1033 . ((one-fiveem2)*cand_p(index(i))+fiveem2*pene(i)) )
1034
1035 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
1036 IF( pene(i)==zero ) stif(i) = zero
1037 gapv(i)=gapv(i)-cand_p(index(i))
1038 ENDDO
1039 ELSE IF(inacti==6)THEN
1040 DO i=1,jlt
1041
1042
1043 cand_p(index(i))=
min(cand_p(index(i)),
1044 . ( (one-fiveem2)*cand_p(index(i))
1045 . +fiveem2*(pene(i)+fiveem2*(gapv(i)-pene(i)))) )
1046
1047 pene(i)=
max(zero,pene(i)-cand_p(index(i)))
1048 IF( pene(i)==zero ) stif(i) = zero
1049 gapv(i)=gapv(i)-cand_p(index(i))
1050 ENDDO
1051 ENDIF
1052
1053 DO i=1,jlt
1054 stif0(i) = stif(i)
1055 ENDDO
1056
1057 IF(imp_int7>=2)THEN
1058 DO i=1,jlt
1059 IF(stiglo<=zero)THEN
1060 stif(i) = half*stif(i)
1061 ELSEIF(stif(i)/=zero)THEN
1062 stif(i) = stiglo
1063 ENDIF
1064 ENDDO
1065 ELSEIF(imp_int7==1)THEN
1066 DO i=1,jlt
1067 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
1068 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
1069 . stif(i)>0. ) stif(i) = 0.
1070 IF(stiglo<=zero)THEN
1071 stif(i) = half*stif(i) * fac
1072 ELSEIF(stif(i)/=zero)THEN
1073 stif(i) = stiglo * fac
1074 ENDIF
1075 ENDDO
1076 ELSE
1077 DO i=1,jlt
1078 fac = gapv(i)/
max( em10,( gapv(i)-pene(i) ) )
1079 IF( (gapv(i)-pene(i))/gapv(i) <prec .AND.
1080 . stif(i)>0. ) stif(i) = 0.
1081 IF(stiglo<=zero)THEN
1082 stif(i) = half*stif(i) * fac
1083 ELSEIF(stif(i)/=zero)THEN
1084 stif(i) = stiglo * fac
1085 ENDIF
1086 ENDDO
1087 DO i=1,jlt
1088 stif(i) = stif(i) * gapv(i) /
1089 .
max((gapv(i) - pene(i)),em10)
1090 ENDDO
1091 ENDIF
1092
1093 fac = abs(scalk)
1094 DO i=1,jlt
1095 stif(i)=stif(i)*fac
1096 fni(i)= -stif(i) * dn0(i)
1097 fxi(i)=n1(i)*fni(i)
1098 fyi(i)=n2(i)*fni(i)
1099 fzi(i)=n3(i)*fni(i)
1100 ENDDO
1101
1102
1103
1104
1105
1106
1107 IF (mfrot==0) THEN
1108
1109 DO i=1,jlt
1110 xmu(i) = fric
1111 ENDDO
1112 ELSEIF (mfrot==1) THEN
1113
1114 DO i=1,jlt
1115 ie=ce_loc(i)
1116 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1117 v2 = (vx(i) - n1(i)*aa)**2
1118 . + (vy(i) - n2(i)*aa)**2
1119 . + (vz(i) - n3(i)*aa)**2
1120 vv = sqrt(
max(em30,v2))
1121 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1122 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1123 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1124 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1125 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1126 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1127 ax = ay1*az2 - az1*ay2
1128 ay = az1*ax2 - ax1*az2
1129 az = ax1*ay2 - ay1*ax2
1130 area = half*sqrt(ax*ax+ay*ay+az*az)
1132 xmu(i) = fric + (frot_p(1) + frot_p(4)*p ) * p
1133 . +(frot_p(2) + frot_p(3)*p) * vv + frot_p(5)*v2
1134 ENDDO
1135 ELSEIF(mfrot==2)THEN
1136
1137 DO i=1,jlt
1138 ie=ce_loc(i)
1139 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1140 v2 = (vx(i) - n1(i)*aa)**2
1141 . + (vy(i) - n2(i)*aa)**2
1142 . + (vz(i) - n3(i)*aa)**2
1143 vv = sqrt(
max(em30,v2))
1144 ax1 = x(1,irect(3,ie)) - x(1,irect(1,ie))
1145 ay1 = x(2,irect(3,ie)) - x(2,irect(1,ie))
1146 az1 = x(3,irect(3,ie)) - x(3,irect(1,ie))
1147 ax2 = x(1,irect(4,ie)) - x(1,irect(2,ie))
1148 ay2 = x(2,irect(4,ie)) - x(2,irect(2,ie))
1149 az2 = x(3,irect(4,ie)) - x(3,irect(2,ie))
1150 ax = ay1*az2 - az1*ay2
1151 ay = az1*ax2 - ax1*az2
1152 az = ax1*ay2 - ay1*ax2
1153 area = half*sqrt(ax*ax+ay*ay+az*az)
1155 xmu(i) = frot_p(1)*exp(frot_p(2)*vv)*p*p
1156 . + frot_p(3)*exp(frot_p(4)*vv)*p
1157 . + frot_p(5)*exp(frot_p(6)*vv)
1158 ENDDO
1159 ELSEIF (mfrot==3) THEN
1160
1161 DO i=1,jlt
1162 aa = n1(i)*vx(i) + n2(i)*vy(i) + n3(i)*vz(i)
1163 v2 = (vx(i) - n1(i)*aa)**2
1164 . + (vy(i) - n2(i)*aa)**2
1165 . + (vz(i) - n3(i)*aa)**2
1166 vv = sqrt(
max(em30,v2))
1167 IF(vv>=0.AND.vv<=frot_p(5)) THEN
1168 dmu = frot_p(3)-frot_p(1)
1169 vv1 = vv / frot_p(5)
1170 xmu(i) = frot_p(1)+ dmu*vv1*(two-vv1)
1171 ELSEIF(vv>frot_p(5).AND.vv<frot_p(6)) THEN
1172 dmu = frot_p(4)-frot_p(3)
1173 vv1 = (vv - frot_p(5))/(frot_p(6)-frot_p(5))
1174 xmu(i) = frot_p(3)+ dmu * (three-two*vv1)*vv1**2
1175 ELSE
1176 dmu = frot_p(2)-frot_p(4)
1177 vv2 = (vv - frot_p(6))**2
1178 xmu(i) = frot_p(2) - dmu / (one + dmu*vv2)
1179 ENDIF
1180 ENDDO
1181 ENDIF
1182
1183
1184
1185
1186 IF (ifq>=10.AND.scalk<zero) THEN
1187 IF (ifq==13) THEN
1189 ELSE
1191 ENDIF
1192 DO i=1,jlt
1193 fx = stif0(i)*dx(i)
1194 fy = stif0(i)*dy(i)
1195 fz = stif0(i)*dz(i)
1196 fx = cand_fx(index(i)) +
alpha*fx
1197 fy = cand_fy(index(i)) +
alpha*fy
1198 fz = cand_fz(index(i)) +
alpha*fz
1199 ftn = fx*n1(i) + fy*n2(i) + fz*n3(i)
1200 fx = fx - ftn*n1(i)
1201 fy = fy - ftn*n2(i)
1202 fz = fz - ftn*n3(i)
1203 ft = fx*fx + fy*fy + fz*fz
1205 fn = fxi(i)**2+fyi(i)**2+fzi(i)**2
1206 beta =
min(one,xmu(i)*sqrt(fn/ft))
1207 fxt(i) = fx * beta
1208 fyt(i) = fy * beta
1209 fzt(i) = fz * beta
1210
1211 fxi(i)=fxi(i) + fxt(i)
1212 fyi(i)=fyi(i) + fyt(i)
1213 fzi(i)=fzi(i) + fzt(i)
1214 ENDDO
1215 ELSE
1216
1217
1218
1219 IF (fric>0) THEN
1220 DO i=1,jlt
1221 vnx = n1(i)*dn0(i)
1222 vny = n2(i)*dn0(i)
1223 vnz = n3(i)*dn0(i)
1224 vx(i) = dx(i) - vnx
1225 vy(i) = dy(i) - vny
1226 vz(i) = dz(i) - vnz
1227 v2 = vx(i)**2 + vy(i)**2 + vz(i)**2
1228 dxt = sqrt(v2)
1229 aa = dxt/
max(em30,v2)
1230 t1 = vx(i)*aa
1231 t2 = vy(i)*aa
1232 t3 = vz(i)*aa
1233 ftn = -xmu(i)*stif(i) * dxt
1234 fxt(i) = ftn * t1
1235 fyt(i) = ftn * t2
1236 fzt(i) = ftn * t3
1237
1238 fxi(i)=fxi(i) + fxt(i)
1239 fyi(i)=fyi(i) + fyt(i)
1240 fzi(i)=fzi(i) + fzt(i)
1241 ENDDO
1242 ENDIF
1243 ENDIF
1244
1245
1246
1247 DO i=1,jlt
1248 fx=fxi(i)
1249 fy=fyi(i)
1250 fz=fzi(i)
1251 a(1,ix1(i))=a(1,ix1(i))+fx*h1(i)
1252 a(1,ix2(i))=a(1,ix2(i))+fx*h2(i)
1253 a(1,ix3(i))=a(1,ix3(i))+fx*h3(i)
1254 a(1,ix4(i))=a(1,ix4(i))+fx*h4(i)
1255 a(2,ix1(i))=a(2,ix1(i))+fy*h1(i)
1256 a(2,ix2(i))=a(2,ix2(i))+fy*h2(i)
1257 a(2,ix3(i))=a(2,ix3(i))+fy*h3(i)
1258 a(2,ix4(i))=a(2,ix4(i))+fy*h4(i)
1259 a(3,ix1(i))=a(3,ix1(i))+fz*h1(i)
1260 a(3,ix2(i))=a(3,ix2(i))+fz*h2(i)
1261 a(3,ix3(i))=a(3,ix3(i))+fz*h3(i)
1262 a(3,ix4(i))=a(3,ix4(i))+fz*h4(i)
1263 ENDDO
1264
1265
1266 DO i=1,jlt
1267 ig=nsvg(i)
1268 IF(ig>0)THEN
1269 a(1,ig)=a(1,ig)-fxi(i)
1270 a(2,ig)=a(2,ig)-fyi(i)
1271 a(3,ig)=a(3,ig)-fzi(i)
1272 ELSE
1273 nn=-ig
1275 ffi(1,ns)=ffi(1,ns)-fxi(i)
1276 ffi(2,ns)=ffi(2,ns)-fyi(i)
1277 ffi(3,ns)=ffi(3,ns)-fzi(i)
1278 ENDIF
1279 ENDDO
1280
1281 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)