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