|

楼主 |
发表于 2024-10-6 20:47:29
|
显示全部楼层
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /DU/ DU,UINPUT
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /PG/ PREXG(2,600)
COMMON /AB/ PSTRAN(4,600),DNPSRN(4,350)
COMMON /DE/ DEN(4,4)
COMMON /PQ/ PEQSRN(600)
COMMON /FP/ PFORCE(3000),PSTOKE(3000),PNECK(3000)
COMMON /FQ/ PFORC1(3000)
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
COMMON /AH/ AH(600),AH0(600)
COMMON /ML/ MF(650),LF(650)
COMMON /NO/ NON1(650),NON2(650),NON3(650),NON4(650),NONP,NON
1 ,NONN1(650),NONN2(650),NONN3(650),NONN4(650)
COMMON /NS/ NSTOP,INTVL,NDATA,NDEFOM
COMMON /NN/ NPE(600),NPEE(600)
COMMON /IC/ ICLIM
COMMON /CH/ CHSTEP,CHECK(20)
DIMENSION
1 DSMAX(650,60),DEF(650),DFORC(650),SMAX(650,60),FORC(650),
2 DATX(4)
WRITE(6,5)
5 FORMAT(1H ,'PROGRAM-NAME *** SIMPLE GOLDA *** BY MANABU GOTOH',
1 //1H ,'NUMERICAL ANALY. OF BASIC 2-D OR AXISYM. PROBLEM BY FEM'
2 //1H ,'***INCREMENTAL ELASTIC-PLASTIC FINITE ELEMENT METHOD***'
3 //1H ,'NUMERICAL EXAMPLE IS SIMPLE TENSION WITH STICKED EDGE IN
4 WHICH X & Y OR R & Z-AXES ARE ASSUMED GEOMETRICAL',
5 /1H ,'SYMMETRY, THEREFORE ONLY A QUARTER PART IS ANALYZED'//)
CALL CONST(PAI,PAI1,PAI2,AINV3,CC1,CC2)
CALL INPUT
IF(ISORN.EQ.1) THICK=1.0D0
CALL INWRIT(IND,ILARGE,ISORN,ROW)
NSTEP=0
IP=1
IPP=1
IIP=1
ICHE=1
CALL SETINI(PUN,EXTEN,EINV,YPINV,PMAX,AREA0,VOLM0,VOLTOT,NUM
1 ,NUM1)
PUNCH=PUN
1000 CONTINUE
DO 10 I=1,MP
FORC(I)=0.D0
DO 20 J=1,NONP
20 SMAX(I,J)=0.D0
10 CONTINUE
DO 900 L=1,NELEM
CALL DPMAT(L,ISORN,IND)
CALL BMAT(L,ISORN,EXTEN,PUN)
CALL SKMAT(L,ILARGE,ISORN,IEXACT,CC1,CC2)
DO 30 I=1,3
M2=2*NOD(I,L)-2
M=2*(I-1)
DO 40 K=1,3
M1=2*NOD(K,L)-2
N=2*(K-1)
DO 50 I1=1,2
J1=M2+I1
DO 50 K1=1,2
J2=M1+K1
J3=J1-J2+NON
II=K1+N
IJ=I1+M
SMAX(J2,J3)=SMAX(J2,J3)+SK(II,IJ)
50 CONTINUE
40 CONTINUE
30 CONTINUE
900 CONTINUE
DO 80 I=1,NUM
K=MF(I)
DO 90 J=1,NUM1
L=LF(J)
JJ=L-K+NON
IF(JJ.GT.NONP) GO TO 80
IF(JJ.LE.0) GO TO 90
FORC(K)=FORC(K)-SMAX(K,JJ)*V(L)
90 CONTINUE
80 CONTINUE
DO 100 I=1,2*NX+2
DO 100 J=1,NONP
FSMAX(I,J)=SMAX(I,J)
100 CONTINUE
DO 110 I=1,NUM
L=MF(I)
DFORC(I)=FORC(L)
MNN=0
DO 120 J=1,NON
J1=NON-J+1
K=L-NON+J1
IF(K.LE.0) GO TO 120
IF(NKN(K).EQ.1) GO TO 120
MNN=MNN+1
JN=J-MNN
JJ=J1+JN
DSMAX(I,JJ)=SMAX(L,J1)
120 CONTINUE
MNN=0
DO 130 J=NON+1,NONP
K=L-NON+J
IF(K.GT.MP) GO TO 110
IF(NKN(K).EQ.1) GO TO 130
MNN=MNN+1
JN=J-NON-MNN
JJ=J-JN
DSMAX(I,JJ)=SMAX(L,J)
130 CONTINUE
110 CONTINUE
IM=0
IN=1
CALL SOLVE(DSMAX,DEF,DFORC,NUM,IN,IM)
IF(IN.NE.0) GO TO 160
WRITE(6,170) IM
STOP
160 CONTINUE
DO 180 I=1,NUM
180 V(MF(I))=DEF(I)
CALL STRESS(ISORN,IND,ILARGE,PMIN)
NSTEP=NSTEP+1
CALL LOAD(PUN,PUNCH,EXTEN,VNECK,AREA0,VOLM0,VOLTOT,VOLT1,
1 SPUN,SPPUN,PMAX,UMAX,PMIN)
NPL=0
DO 210 L=1,NELEM
IF(NPORE(L).NE.1) GO TO 210
NPL=NPL+1
NPE(NPL)=L
210 CONTINUE
NPM=0
DO 220 I=1,NELEM
IF(NPORE(I).NE.2) GO TO 220
NPM=NPM+1
NPEE(NPM)=I
220 CONTINUE
CALL NODST
IQQ=NSTEP/NDATA
IF(IQQ.NE.IPP) GO TO 230
IPP=IPP+1
CALL SPWRIT(SPUN,PUNCH,SPPUN,VNECK,EXTEN,VOLTOT,NPL,NPM)
230 CONTINUE
IQ=NSTEP/INTVL
IF(IP.NE.IQ) GO TO 240
IP=IP+1
!CALL DEWRIT
240 CONTINUE
IIQ=NSTEP/NDEFOM
IF(IIQ.NE.IIP) GO TO 250
IIP=IIP+1
250 CONTINUE
DU=UINPUT
DO 260 I=1,NX+1
260 V(2*I)=DU
IF(PSTOKE(NSTEP).LT.CHECK(ICHE).AND.NSTEP.LT.NSTOP) GO TO 1000
IF(PSTOKE(NSTEP).LT.CHECK(ICHE)) GO TO 500
N1=NSTEP-1
N=NSTEP
P=PSTOKE(N)
P1=PSTOKE(N1)
P=(CHECK(ICHE)-P1)/(P-P1)
EXTEN=PSTOKE(N1)+P*(PSTOKE(N)-PSTOKE(N1))
DO 270 I=1,2
DO 270 J=1,NPOIN
270 PREX(I,J)=PREX(I,J)+P*(XR(I,J)-PREX(I,J))
DO 280 I=1,2
DO 280 L=1,NELEM
280 PREXG(I,L)=PREXG(I,L)+P*(XG(I,L)-PREXG(I,L))
DATX(1)=PFORCE(N1)+P*(PFORCE(N)-PFORCE(N1))
DATX(2)=PNECK(N1)+P*(PNECK(N)-PNECK(N1))
DATX(3)=VOLT1+P*(VOLTOT-VOLT1)
DATX(4)=PFORC1(N1)+P*(PFORC1(N)-PFORC1(N1))
WRITE(6,290) EXTEN
WRITE(6,300) (DATX(I),I=1,3)
WRITE(6,310) DATX(4)
ICHE=ICHE+1
IF(ICHE.GT.ICLIM.OR.NSTEP.GE.NSTOP) GO TO 500
GO TO 1000
500 CONTINUE
WRITE(6,320) NSTEP
WRITE(6,330) UMAX,PMAX
70 FORMAT(1H,'USED TIME IN MAKING STIFFNESS MATRIX(MMSEC)= ',I8/)
150 FORMAT(1H,'CHECK TIME1 (MMSEC)=',I8/)
170 FORMAT(1H ,'ZERO U(I,I) IN SOLVE AT I=',I4//)
200 FORMAT(1H, 'VOLVER TIME (MMSEC)=',I8/)
290 FORMAT(//1H ,'VALUES AT EXTENSION-RATIO = ',D15.7//)
300 FORMAT(1H ,'SIGWAVE/SIGY=',D15.7,2X,'VNECK/W= ',D15.7,2X,
1 'VOL/VOL0= ',D15.7/)
310 FORMAT(1H ,'SIGWAVE/SIGY FROM NODAL FORCE =',D15.7/)
320 FORMAT(1H ,'STEP NUMBER AT CALCULATION-STOP = ',2X,I4/)
330 FORMAT(1H ,'U/L AT FORCE-MAX = ',D15.7,5X,'MAXIMUM FORCE = ',
1 D15.7/)
STOP
END
SUBROUTINE INPUT
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /DU/ DU,UINPUT
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /IB/ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /NS/ NSTOP,INTVL,NDATA,NDEFOM
COMMON /IC/ ICLIM
COMMON /CH/ CHSTEP,CHECK(20)
!READ(5,2) NSTOP
NSTOP = 2000
!READ(5,3) ISORN,IND,ILARGE,IEXACT,NX,NY
ISORN = 0
IND = 0
ILARGE = 1
IEXACT = 1
NX = 6
NY = 24
!READ(5,4) NELEM,NPOIN
NELEM = 576
NPOIN = 319
!READ(5,5) YOUNG,POIS,COEF,AN,YP0,EPSY
YOUNG = 0.2D6
POIS = 0.29D0
COEF = 0.0D0
AN = 0.625D-1
YP0 = 0.4D3
EPSY = 0.2D-2
!READ(5,6) ROW
ROW = 0.0
!READ(5,7) DEQP,ALPH
DEQP = 0.2D-2
ALPH = 0.99999D0
!READ(5,8) ALEN,ASRAT,THICK
ALEN = 0.1875D2
ASRAT = 3.0
THICK = 0.1D1
!READ(5,7) DU,UINPUT
DU = 0.1D-1
UINPUT = 0.1D-1
!READ(5,2) IMP
IMP = 0
!READ(5,2) ICLIM
ICLIM = 10
!READ(5,6) CHSTEP
CHSTEP = 0.02
!READ(5,2) INPRIN
INPRIN = 0
!READ(5,2) INTVL
INTVL = 100
!READ(5,2) NDATA
NDATA = 100
!READ(5,2) NDEFOM
NDEFOM = 100
MP=2*NPOIN
YP=YP0*EPSY**(-AN)
WW=ALEN/ASRAT
WRITE(6,10)
WRITE(6,11) YOUNG,POIS,YP,YP0,COEF,AN,EPSY
WRITE(6,12) NELEM,NPOIN,MP
WRITE(6,13) NX,NY
WRITE(6,14) DEQP,ALPH
WRITE(6,15) DU,UINPUT
WRITE(6,16) ALEN,WW,THICK
WRITE(6,17) IMP
CALL COORD(IMP,INPRIN)
2 FORMAT(I6)
3 FORMAT(6I4)
4 FORMAT(2I4)
5 FORMAT(6F12.0)
6 FORMAT(F12.0)
7 FORMAT(2F12.0)
8 FORMAT(3F12.0)
10 FORMAT(1H ,'YOUNG=YOUNGS MODU.,YP=PLAS.DOEF.,COEF=OFFSET STRAIN,
1 AN=N-VALUE AND EPSY=INITIAL PLAST.STRAIN;',/1H ,2X,'YOUNG',10X,
2 'POIS',11X,'YP',13X,'YP0',12X,'COEF',11X,'AN',13X,'EPSY')
11 FORMAT(1H ,7D15.7)
12 FORMAT(1H ,'NUMBER OF ELEMENTS='1X,I4,5X,'NUMBER OF NODES=',1X,
1 I4,5X,'TOTAL DEGREE OF FREEDOM=',1X,I4/)
13 FORMAT(1H ,'NX AND NY (DIVISION NUMBER IN X & Y) = ',2I6/)
14 FORMAT(1H ,'MAXIMU INCREMENT OF EQUI-STRAIN DEQP=',D15.7
1 ,5X,'LATITUDE PARA. OF YIELDING ALPH = ',D15.7/)
15 FORMAT(1H ,'INITIAL DISPLACEMENT= ',D13.5,5X,'CURRENT DISPLACE-
1 MENT INCREMENT UINPUT =',D13.5/)
16 FORMAT(1H ,'SPECIMEN LENGTH & WIDTH IN HALF AND THICKNESS(MM) ='
1 ,3D13.5//)
17 FORMAT(1H ,'ELEMENT DIVISION PATTERN PARA. IMP=',I8/)
RETURN
END
SUBROUTINE INWRIT(ID,IL,IS,RW)
IMPLICIT REAL*8 (A-H,O-Z)
IF(ID.NE.0) GO TO 10
WRITE(6,20)
GO TO 30
10 WRITE(6,40) ID
IF(ID.NE.4) GO TO 50
WRITE(6,60)
50 CONTINUE
IF(ID.NE.5) GO TO 30
WRITE(6,70)
30 CONTINUE
IF(IL.EQ.1) GO TO 80
WRITE(6,90)
GO TO 100
80 WRITE(6,110)
100 CONTINUE
IF(IS.EQ.1) GO TO 120
IF(IS.EQ.2) GO TO 130
WRITE(6,140)
GO TO 150
120 WRITE(6,160)
GO TO 150
130 CONTINUE
WRITE(6,170)
150 CONTINUE
WRITE(6,180)
IF(ID.EQ.0) GO TO 190
WRITE(6,200) RW
190 CONTINUE
20 FORMAT(1H ,'J2-FLOW THEORY'/)
40 FORMAT(1H ,'J2G OR J2N CONST. EQUATION WITH IND=',I4/)
60 FORMAT(1H ,'J2G-CONSTITUTIVE EQUATION IS USED'/)
70 FORMAT(1H ,'NON-NORMALITY CONSTITUTE EQUATION IS USED'/)
90 FORMAT(1H ,'SMALL STRAIN THEORY'/)
110 FORMAT(1H ,'LARGE STRAIN THEORY'/)
140 FORMAT(1H ,'PLANE STRESS STATE'/)
160 FORMAT(1H ,'PLANE STRAIN STATE'/)
170 FORMAT(1H ,'AXI-SYMMETRIC CASE'/)
180 FORMAT(1H ,'SIMPLE TENSION WITH STICKED EDGE AS EXAMPLE'/)
200 FORMAT(1H ,'VERTEX OR NONNORMALITY PARAMETER ROW =',D15.7/)
RETURN
END
SUBROUTINE COORD(IMP,INPRIN)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /PG/ PREXG(2,600)
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
NX1=2*NX+1
IF(IMP.EQ.2) GO TO 500
NY1=NY/2
DX=WW/FLOAT(NX)
PPP=2.D0/3.D0
IF(ISORN.NE.0) PPP=23.D0/30.D0
PPP=1.D0-(1.D0-PPP)*(3.D0/ASRAT)
DY1=ALEN*PPP/FLOAT(NY1)
PPP=1.D0/3.D0
IF(ISORN.NE.0) PPP=7.D0/30.D0
PPP=PPP*(3.D0/ASRAT)
DY2=ALEN*PPP/FLOAT(NY1)
DO 100 I=1,NX+1
P=DX*FLOAT(I-1)
IF(I.EQ.1) P=0.D0
DO 110 J=1,NY+1
K=I+NX1*(J-1)
XR(1,K)=P
IF(I.EQ.NX+1.OR.J.EQ.NY+1) GO TO 110
K1=I+NX+1+NX1*(J-1)
XR(1,K1)=P+0.5D0*DX
110 CONTINUE
100 CONTINUE
DO 120 J=1,NY+1
IF(J.GT.NY1+1) GO TO 130
P=DY1*FLOAT(J-1)
IF(J.EQ.1) P=0.D0
GO TO 140
130 P=DY1*FLOAT(NY1)+DY2*FLOAT(J-NY1-1)
IF(J.EQ.NY+1) P=ALEN
140 CONTINUE
NX2=NX1*(J-1)
DO 150 I=1,NX+1
K=I+NX2
XR(2,K)=ALEN-P
IF(I.EQ.NX+1.OR.J.EQ.NY+1) GO TO 150
K1=I+NX+1+NX2
DY3=DY1*0.5D0
IF(J.GT.NY1) DY3=DY2*0.5D0
XR(2,K1)=ALEN-P-DY3
150 CONTINUE
120 CONTINUE
GO TO 600
500 CONTINUE
DX=WW/FLOAT(NX)
DO 160 I=1,NX+1
P=DX*FLOAT(I-1)
IF(I.EQ.1) P=0.D0
IF(I.EQ.NX+1) P=WW
DO 170 J=1,NY+1
K=I+NX1*(J-1)
XR(1,K)=P
170 CONTINUE
160 CONTINUE
N=6
C=FLOAT(N)
CC=LOG(C)
P=1.D0/FLOAT(NY-1)
Q=EXP(CC*P)
Q1=Q**NY
AY=(Q-1)/(Q1-1)*ALEN
DO 180 J=1,NY+1
J1=NPOIN-NX-(J-1)*NX1
IF(J.NE.1) GO TO 190
P=0.D0
GO TO 200
190 CONTINUE
IF(J.NE.NY+1) GO TO 210
P=ALEN
GO TO 200
210 CONTINUE
AY=AY
IF(J.NE.2) AY=AY*Q
P=PP+AY
200 CONTINUE
DO 220 I=1,NX+1
I1=J1+I-1
XR(2,I1)=P
220 CONTINUE
PP=P
180 CONTINUE
DO 230 J=1,NY
J1=NX+2+(2*NX+1)*(J-1)
DO 230 I=1,NX
K=J1+I-1
K1=K-(NX+1)
K2=K1+1
K3=K+NX
K4=K3+1
XR(1,K)=0.25D0*(XR(1,K1)+XR(1,K2)+XR(1,K3)+XR(1,K4))
XR(2,K)=0.25D0*(XR(2,K1)+XR(2,K2)+XR(2,K3)+XR(2,K4))
230 CONTINUE
600 CONTINUE
DO 240 I=1,2
DO 240 J=1,NPOIN
240 PREX(I,J)=XR(I,J)
DO 10 I=1,MP
10 NKN(I)=0
DO 20 I=1,NX+1
J=2*I
NKN(J)=1
NKN(J-1)=1
20 CONTINUE
DO 30 I=1,NY+1
J=2*NX1*(I-1)+1
30 NKN(J)=1
DO 40 I=1,NX+1
J=2*(NX1*NY+I)
40 NKN(J)=1
DO 250 I=1,NX
DO 250 J=1,NY
J1=(J-1)*4*NX
K1=J1+I
K2=J1+I+NX
K3=J1+I+2*NX
K4=J1+I+3*NX
J1=(J-1)*(2*NX+1)
NOD(1,K1)=J1+I
NOD(1,K2)=NOD(1,K1)
NOD(2,K1)=J1+NX+1+I
NOD(3,K2)=NOD(2,K1)
NOD(2,K3)=NOD(2,K1)
NOD(3,K4)=NOD(2,K1)
NOD(3,K1)=NOD(1,K1)+1
NOD(1,K3)=NOD(3,K1)
NOD(2,K2)=J1+2*NX+1+I
NOD(1,K4)=NOD(2,K2)
NOD(3,K3)=NOD(2,K2)+1
NOD(2,K4)=NOD(3,K3)
250 CONTINUE
DO 260 L=1,NELEM
DO 270 J=1,2
SUM=0.D0
DO 280 I=1,3
280 SUM=SUM+XR(J,NOD(I,L))
XG(J,L)=SUM*AINV3
PREXG(J,L)=XG(J,L)
270 CONTINUE
260 CONTINUE
IF(INPRIN.NE.1) GO TO 400
WRITE(6,300) ((XR(I,J),I=1,2),J=1,NPOIN)
WRITE(6,310) ((NOD(I,J),I=1,3),J=1,NELEM)
400 CONTINUE
300 FORMAT(1H ,'INITIAL COORDINATES OF NODES'//(1H ,1P10D13.5))
310 FORMAT(1H ,'NODAL NO. BELONGING TO EACH ELEMENT',//(1H ,30I4))
RETURN
END
SUBROUTINE CONST(A,B,C,D,E,F)
IMPLICIT REAL*8 (A-H,O-Z)
A=3.14159265358979D0
C=A*0.5D0
D=1.D0/3.D0
B=A*D
E=25.D0/48.D0
F=-27.D0/48.D0
RETURN
END
SUBROUTINE SETINI(PUN,EXTEN,EINV,YPINV,PMAX,AREA0,
1 VOLM0,VOLTOT,NUM,NUM1)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /ML/ MF(650),LF(650)
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /DU/ DU,UINPUT
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /PG/ PREXG(2,600)
COMMON /AB/ PSTRAN(4,600),DNPSRN(4,350)
COMMON /DE/ DEN(4,4)
COMMON /PQ/ PEQSRN(600)
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
COMMON /AH/ AH(600),AH0(600)
COMMON /NO/ NON1(650),NON2(650),NON3(650),NON4(650),NONP,NON
1 ,NONN1(650),NONN2(650),NONN3(650),NONN4(650)
COMMON /IC/ ICLIM
COMMON /CH/ CHSTEP,CHECK(20)
PUN=0.D0
EXTEN=0.D0
EINV=1.D0/YOUNG
COMP=(1.D0-2.D0*POIS)*EINV
COMP1=1.D0/COMP
ANP=AN-1.0D0
YPINV=1.D0/YP0
PMAX=0.D0
AREA0=2.D0*WW*THICK
IF(ISORN.EQ.2) AREA0=PAI*WW*WW
VOLM0=AREA0*ALEN
VOLTOT=VOLM0
CHECK(1)=CHSTEP
DO 10 I=2,ICLIM
10 CHECK(I)=CHECK(I-1)+CHSTEP
DO 20 L=1,NELEM
ATUSA(L)=THICK
CT(L)=1.D0
AH(L)=0.D0
NPORE(L)=0
20 CONTINUE
DO 30 L=1,NELEM
PFUNC(L)=1.D0
DO 30 J=1,3
A1(J,L)=0.D0
30 CONTINUE
NUM=0
NUM1=0
DO 80 I=1,MP
IF(NKN(I).EQ.1) GO TO 90
NUM=NUM+1
MF(NUM)=I
GO TO 80
90 CONTINUE
NUM1=NUM1+1
LF(NUM1)=I
80 CONTINUE
DO 100 L=1,NELEM
THETA0(L)=PAI2
NPORE(L)=0
DSRN(4,L)=0.0D0
PEQSRN(L)=0.D0
YP1(L)=YP0
DO 110 I=1,4
110 PSTRAN(I,L)=0.0D0
100 CONTINUE
DO 120 L=1,NELEM
EQSRN(L)=0.0D0
EQSTS(L)=0.0D0
DO 130 I=1,4
STRES(I,L)=0.0D0
130 STRAN(I,L)=0.0D0
120 CONTINUE
DO 140 I=1,2*NX+2
140 FORCE(I)=0.0D0
DO 150 I=1,MP
150 V(I)=0.0D0
DO 160 I=1,NX+1
K=2*I
160 V(K)=DU
DO 170 I=1,4
DO 170 J=1,6
170 BM(I,J)=0.0D0
DO 180 I=1,4
DO 180 J=1,4
DEN(I,J)=0.0D0
180 DEM(I,J)=0.0D0
G=YOUNG*0.5D0/(1.D0+POIS)
G1=1.D0/G
DE2=2.D0/(1.D0-2.D0*POIS)
IF(ISORN.EQ.1) GO TO 190
IF(ISORN.EQ.2) GO TO 200
DE1=YOUNG/(1.D0-POIS**2)
DEM(1,1)=DE1
DEM(2,2)=DE1
DEM(1,2)=DE1*POIS
DEM(2,1)=DEM(1,2)
DEM(3,3)=G
GO TO 210
190 CONTINUE
DE1=G
DEM(1,1)=(1.D0-POIS)*DE1*DE2
DEM(2,2)=DEM(1,1)
DEM(1,2)=POIS*DE1*DE2
DEM(2,1)=DEM(1,2)
DEM(3,3)=DE1
210 CONTINUE
DD=1.D0/(DEM(1,1)*DEM(2,2)-DEM(1,2)**2)
DEN(1,1)=DEM(2,2)*DD
DEN(2,2)=DEN(1,1)
DEN(1,2)=-DEM(1,2)*DD
DEN(2,1)=DEN(1,2)
DEN(3,3)=G1
GO TO 220
200 CONTINUE
DE1=G*DE2*(1.D0-POIS)
DE2=G*DE2*POIS
DE3=G
DEM(1,1)=DE1
DEM(1,2)=DE2
DEM(1,4)=DE2
DEM(2,2)=DE1
DEM(2,4)=DE2
DEM(3,3)=DE3
DEM(4,4)=DE1
DE1=EINV
DE2=-POIS*DE1
DE3=G1
DEN(1,1)=DE1
DEN(1,2)=DE2
DEN(1,4)=DE2
DEN(2,2)=DE1
DEN(2,4)=DE2
DEN(3,3)=DE3
DEN(4,4)=DE1
DO 230 I=2,4,2
DO 230 J=1,I-1
DEN(I,J)=DEN(J,I)
230 DEM(I,J)=DEM(J,I)
220 CONTINUE
DO 240 I=1,MP
NON1(I)=1
240 NON2(I)=1
DO 250 L=1,NELEM
M=NOD(1,L)
N=M
M1=1
N1=1
DO 260 I=2,3
IF(M.GE.NOD(I,L)) GO TO 270
M1=I
M=NOD(I,L)
270 IF(N.LE.NOD(I,L)) GO TO 260
N1=I
N=NOD(I,L)
260 CONTINUE
DO 280 I=1,3
IF(I.EQ.M1.OR.I.EQ.N1) GO TO 280
MM=I
GO TO 290
280 CONTINUE
290 CONTINUE
NM=NOD(MM,L)
MA=2*(M-N+1)
MB=MA-1
MC=2*(NM-N+1)
MD=MC-1
IF(NON2(2*M).LT.MA) NON2(2*M)=MA
NON1(2*M)=NON2(2*M)
IF(NON2(2*M-1).LT.MB) NON2(2*M-1)=MB
NON1(2*M-1)=NON2(2*M-1)
IF(NON2(2*NM).LT.MC) NON2(2*NM)=MC
NON1(2*NM)=NON2(2*NM)
IF(NON2(2*NM-1).LT.MD) NON2(2*NM-1)=MD
NON1(2*NM-1)=NON2(2*NM-1)
IF(NON2(2*N).LT.2) NON2(2*N)=2
NON1(2*N)=NON2(2*N)
250 CONTINUE
NONM1=NON1(1)
NONM2=NON2(1)
DO 300 I=1,MP
IF(NONM1.LT.NON1(I)) NONM1=NON1(I)
IF(NONM2.LT.NON2(I)) NONM2=NON2(I)
NON3(I)=NON1(I)
NON4(I)=NON2(I)
IF(NON1(I).GE.NON2(I)) GO TO 300
NON3(I)=NON2(I)
NON4(I)=NON1(I)
300 CONTINUE
NON=NONM1
NONP=NONM1+NONM2-1
N=0
DO 310 I=1,MP
IF(NKN(I).EQ.1) GO TO 310
N=N+1
NONN1(N)=NON1(I)
NONN2(N)=NON2(I)
NONN3(N)=NON3(I)
NONN4(N)=NON4(I)
310 CONTINUE
WRITE(6,320) NON,NONP
320 FORMAT(/1H ,'BAND BREADTH AND ITS DOUBLE - 1',10X,2I8/)
RETURN
END
SUBROUTINE DPMAT(L,IS,ID)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
COMMON /AH/ AH(600),AH0(600)
DIMENSION DE(4,4)
IF(NPORE(L).EQ.1) GO TO 5
DO 10 I=1,4
DO 10 J=1,4
10 D(I,J,L)=DEM(I,J)
RETURN
5 CONTINUE
HARD1=AN*YP*(COEF+EQSRN(L))**ANP
AH0(L)=HARD1*AINV3
IF(ID.NE.5) GO TO 20
HNP1=3.D0*EQSRN(L)*(1.D0+ROW)/(EQSTS(L)*(1.D0+ROW*CT(L)))
20 CONTINUE
DO 30 I=1,4
DO 30 J=1,4
30 DE(I,J)=DEM(I,J)
PMG=1.D0
PSGN=1.D0
H=G
POI=POIS
YOUN=YOUNG
IF(ID.EQ.5) GO TO 40
CS0=COS(THETA0(L))
IF(ID.EQ.0) GO TO 50
CS=CS0
CS=1.D0+1.D0/CS
AH(L)=1.D0/CS
40 CONTINUE
IF(ID.EQ.5) AH(L)=CT(L)*AH0(L)*HNP1
IF(ID.GE.2) PMG=1.D0-AH(L)
IF(ID.EQ.5) GO TO 60
PMGG=PMG
IF(ID.EQ.3) PMG=PMG*PMG
IF(CT(L).LE.0.D0.AND.ID.NE.3) PSGN=0.D0
PMG=PMG*PSGN
IF(ID.EQ.4) PMG=1.D0
H0=CS*HARD1*AINV3
GG1=G1+PFUNC(L)/H0
60 CONTINUE
IF(ID.EQ.5) GG1=G1+CT(L)*HNP1
H=1.D0/GG1
YOUN=YOUNG*3.D0/(1.D0-2.D0*POIS+YOUNG*GG1)
POI=(YOUNG*GG1-2.D0+4.D0*POIS)*0.5D0/(1.D0-2.D0*POIS+YOUNG*GG1)
IF(IS.EQ.1.OR.IS.EQ.2) GO TO 70
DE1=YOUN/(1.D0-POI**2)
DE(1,1)=DE1
DE(2,2)=DE1
DE(1,2)=DE1*POI
DE(2,1)=DE(1,2)
DE(3,3)=H
GO TO 50
70 CONTINUE
DE1=2.D0/(1.D0-2.D0*POI)
DE(1,1)=(1.D0-POI)*H*DE1
DE(2,2)=DE(1,1)
DE(1,2)=POI*H*DE1
DE(2,1)=DE(1,2)
DE(3,3)=H
IF(IS.EQ.1) GO TO 50
DE(1,4)=DE(1,2)
DE(2,4)=DE(1,2)
DE(4,1)=DE(1,2)
DE(4,2)=DE(1,2)
DE(4,4)=DE(1,1)
50 CONTINUE
DSM=(STRES(1,L)+STRES(2,L)+STRES(4,L))*AINV3
DSX=STRES(1,L)-DSM
DSY=STRES(2,L)-DSM
DSZ=STRES(4,L)-DSM
DSXY=STRES(3,L)
IF(IS.EQ.1.OR.IS.EQ.2) GO TO 80
SS(1)=DE(1,1)*(DSX+POI*DSY)
SS(2)=DE(1,1)*(POI*DSX+DSY)
SS(3)=2.D0*DE(3,3)*DSXY
P=1.D0
IF(ID.EQ.4) P=CT(L)/(PMGG*PFUNC(L))
HARD1=HARD1*4.D0*(AINV3*EQSTS(L))**2*P+(SS(1)*DSX+SS(2)
1 *DSY+SS(3)*DSXY*2.D0)*PMG
SS(4)=0.D0
CC=1.D0/HARD1*PMG
GO TO 90
80 CONTINUE
P=1.D0
IF(ID.EQ.4) P=CT(L)/(PMGG*PFUNC(L))
CC=9.D0*H*H*PMG/(EQSTS(L)**2*(HARD1*P+3.D0*PMG*H))
SS(1)=DSX
SS(2)=DSY
SS(3)=DSXY
SS(4)=0.D0
IF(IS.EQ.2) SS(4)=DSZ
90 CONTINUE
DO 100 I=1,4
DO 100 J=1,4
100 D(I,J,L)=DE(I,J)-SS(I)*SS(J)*CC
RETURN
END
SUBROUTINE BMAT(L,IS,EXTEN,PUN)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /AA/ AA(3,600)
II=NOD(1,L)
IJ=NOD(2,L)
IK=NOD(3,L)
IF(NSTEP.NE.0) GO TO 100
AREAP=XR(1,II)*(XR(2,IJ)-XR(2,IK))+XR(1,IJ)*(XR(2,IK)-XR(2,II))
1 +XR(1,IK)*(XR(2,II)-XR(2,IJ))
AREA(L)=AREAP*0.5D0
IF(AREA(L).GT.0.D0) GO TO 100
WRITE(6,10) L
WRITE(6,20) ((XR(I,J),I=1,2),J=1,NPOIN)
STOP
100 CONTINUE
AR1=0.5D0/AREA(L)
B1(1,L)=(XR(1,IK)-XR(1,IJ))*AR1
B1(2,L)=(XR(2,IJ)-XR(2,IK))*AR1
B1(3,L)=(XR(1,II)-XR(1,IK))*AR1
B1(4,L)=(XR(2,IK)-XR(2,II))*AR1
B1(5,L)=(XR(1,IJ)-XR(1,II))*AR1
B1(6,L)=(XR(2,II)-XR(2,IJ))*AR1
IF(IS.NE.2) GO TO 200
AA(1,L)=(XR(1,IJ)*XR(2,IK)-XR(1,IK)*XR(2,IJ))*AR1
AA(2,L)=(XR(1,IK)*XR(2,II)-XR(1,II)*XR(2,IK))*AR1
AA(3,L)=(XR(1,II)*XR(2,IJ)-XR(1,IJ)*XR(2,II))*AR1
DO 30 I=1,3
30 A1(I,L)=(AA(I,L)+B1(2*I-1,L)*XG(2,L))/XG(1,L)+B1(2*I,L)
200 CONTINUE
10 FORMAT(1H ,'ELEMENT NUMBER OF NEGATIVE AREA= ',2X,I4/)
20 FORMAT(1H1,'JAMMED NODAL COORDINATES'/(1H ,1P10D13.5))
RETURN
END
SUBROUTINE SKMAT(L,IL,IS,IEX,C1,C2)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /AA/ AA(3,600)
DIMENSION RI(3),ZI(3)
PIL=1.D0
IF(IL.EQ.0) PIL=0.D0
IF(NSTEP.NE.0) GO TO 10
TH=ATUSA(L)
IF(IS.EQ.2) TH=6.28318530717959D0*XG(1,L)
VOL=AREA(L)*TH
GO TO 20
10 VOL=EVOL(L)
20 CONTINUE
DO 30 I=1,6
30 BM(3,I)=B1(I,L)
BM(1,1)=B1(2,L)
BM(1,3)=B1(4,L)
BM(1,5)=B1(6,L)
BM(2,2)=B1(1,L)
BM(2,4)=B1(3,L)
BM(2,6)=B1(5,L)
IF(IS.EQ.2) GO TO 40
DO 50 I=1,3
DO 50 J=1,6
50 DSK(I,J)=D(I,1,L)*BM(1,J)+D(I,2,L)*BM(2,J)+D(I,3,L)*BM(3,J)
DO 60 I=1,6
DO 60 J=1,6
60 SK(I,J)=BM(1,I)*DSK(1,J)+BM(2,I)*DSK(2,J)+BM(3,I)*DSK(3,J)
GO TO 500
40 CONTINUE
DO 70 I=1,3
I2=2*I-1
70 BM(4,I2)=A1(I,L)
DO 80 I=1,6
DO 80 J=1,6
SUM=0.D0
DO 90 K=1,4
DO 90 M=1,4
SUM=SUM+BM(K,I)*D(K,M,L)*BM(M,J)
90 CONTINUE
SK(I,J)=SUM
80 CONTINUE
IF(IEX.NE.1) GO TO 500
VS=1.D0/XG(1,L)
RI(1)=.2D0*(XR(1,NOD(1,L))+XR(1,NOD(2,L)))+0.6D0*XR(1,NOD(3,L))
RI(2)=.2D0*(XR(1,NOD(2,L))+XR(1,NOD(3,L)))+0.6D0*XR(1,NOD(1,L))
RI(3)=.2D0*(XR(1,NOD(3,L))+XR(1,NOD(1,L)))+0.6D0*XR(1,NOD(2,L))
ZI(1)=.2D0*(XR(2,NOD(1,L))+XR(2,NOD(2,L)))+0.6D0*XR(2,NOD(3,L))
ZI(2)=.2D0*(XR(2,NOD(2,L))+XR(2,NOD(3,L)))+0.6D0*XR(2,NOD(1,L))
ZI(3)=.2D0*(XR(2,NOD(3,L))+XR(2,NOD(1,L)))+0.6D0*XR(2,NOD(2,L))
AI1=0.D0
AI2=0.D0
AI3=0.D0
DO 100 I=1,3
AI1=AI1+1.D0/RI(I)
AI2=AI2+ZI(I)/RI(I)
100 AI3=AI3+ZI(I)**2/RI(I)
AI1=VS*D(4,4,L)*(C1*AI1+(C2-1.D0)*VS)
AI2=VS*D(4,4,L)*(C1*AI2+(C2-1.D0)*XG(2,L)*VS)
AI3=VS*D(4,4,L)*(C1*AI3+(C2-1.D0)*XG(2,L)**2*VS)
SK(1,1)=SK(1,1)+AA(1,L)*AA(1,L)*AI1+(AA(1,L)*B1(1,L)+AA(1,L)
1 *B1(1,L))*AI2+B1(1,L)*B1(1,L)*AI3
SK(1,3)=SK(1,3)+AA(1,L)*AA(2,L)*AI1+(AA(1,L)*B1(3,L)+AA(2,L)
1 *B1(1,L))*AI2+B1(1,L)*B1(3,L)*AI3
SK(1,5)=SK(1,5)+AA(1,L)*AA(3,L)*AI1+(AA(1,L)*B1(5,L)+AA(3,L)
1 *B1(1,L))*AI2+B1(1,L)*B1(5,L)*AI3
SK(3,1)=SK(3,1)+AA(2,L)*AA(1,L)*AI1+(AA(2,L)*B1(1,L)+AA(1,L)
1 *B1(3,L))*AI2+B1(3,L)*B1(1,L)*AI3
SK(3,3)=SK(3,3)+AA(2,L)*AA(2,L)*AI1+(AA(2,L)*B1(3,L)+AA(2,L)
1 *B1(3,L))*AI2+B1(3,L)*B1(3,L)*AI3
SK(3,5)=SK(3,5)+AA(2,L)*AA(3,L)*AI1+(AA(2,L)*B1(5,L)+AA(3,L)
1 *B1(3,L))*AI2+B1(3,L)*B1(5,L)*AI3
SK(5,1)=SK(5,1)+AA(3,L)*AA(1,L)*AI1+(AA(3,L)*B1(1,L)+AA(1,L)
1 *B1(5,L))*AI2+B1(5,L)*B1(1,L)*AI3
SK(5,3)=SK(5,3)+AA(3,L)*AA(2,L)*AI1+(AA(3,L)*B1(3,L)+AA(2,L)
1 *B1(5,L))*AI2+B1(5,L)*B1(3,L)*AI3
SK(5,5)=SK(5,5)+AA(3,L)*AA(3,L)*AI1+(AA(3,L)*B1(5,L)+AA(3,L)
1 *B1(5,L))*AI2+B1(5,L)*B1(5,L)*AI3
500 CONTINUE
IF(NSTEP.EQ.0) GO TO 200
ST1=STRES(1,L)
ST2=STRES(2,L)
ST3=STRES(3,L)
ST4=ST1+ST2
ST5=ST1-ST2
DO 110 I=1,3
I1=2*I-1
I2=2*I
CI=B1(I1,L)
BI=B1(I2,L)
DO 110 J=1,3
J1=2*J-1
J2=2*J
CJ=B1(J1,L)
BJ=B1(J2,L)
SK(I1,J1)=SK(I1,J1)-(0.5D0*CI*CJ*ST5+BI*BJ*ST1)*PIL
SK(I1,J2)=SK(I1,J2)-(0.5D0*CI*BJ*ST4+(CI*CJ+BI*BJ)*ST3)*PIL
SK(I2,J1)=SK(I2,J1)-(0.5D0*BI*CJ*ST4+(CI*CJ+BI*BJ)*ST3)*PIL
SK(I2,J2)=SK(I2,J2)+(0.5D0*BI*BJ*ST5-CI*CJ*ST2)*PIL
110 CONTINUE
200 CONTINUE
DO 120 I=1,6
DO 120 J=1,6
120 SK(I,J)=VOL*SK(I,J)
RETURN
END
SUBROUTINE SOLVE(AA,RR,YY,NN,IN,IM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION AA(650,60),RR(650),YY(650)
DIMENSION UU(650,30),AL(650,30)
COMMON /NO/ NON1(650),NON2(650),NON3(650),NON4(650),NONP,NON
1 ,NONN1(650),NONN2(650),NONN3(650),NONN4(650)
MM=NON
UU(1,1)=AA(1,MM)
IF(UU(1,1).NE.0.D0) GO TO 100
IN=0
IM=1
RETURN
100 CONTINUE
U1=1.D0/UU(1,1)
DO 110 I=2,MM
UU(1,I)=AA(1,I+MM-1)
110 AL(1,I)=AA(I,MM-I+1)*U1
DO 120 I=2,NN
SUM1=0.D0
II=I+1
NI=NONN4(I)-1
DO 130 K=1,I-1
IF(K.GT.NI) GO TO 140
KK=I-K
I1=K+1
SUM1=SUM1+UU(KK,I1)*AL(KK,I1)
130 CONTINUE
140 CONTINUE
UU(I,1)=AA(I,MM)-SUM1
IF(UU(I,1).NE.0.D0) GO TO 150
IN=0
IM=I
RETURN
150 CONTINUE
U1=1.D0/UU(I,1)
DO 160 J=2,MM
IJ=I+J
IF(IJ-1.GT.NN) GO TO 120
NJ=NONN3(IJ-1)-J
SUM1=0.D0
SUM2=0.D0
DO 170 K=1,I-1
IF(K.GT.NI.OR.K.GT.NJ) GO TO 180
KK=I-K
I1=J+K
I2=1+K
SUM1=SUM1+UU(KK,I1)*AL(KK,I2)
SUM2=SUM2+UU(KK,I2)*AL(KK,I1)
170 CONTINUE
180 CONTINUE
UU(I,J)=AA(I,J+MM-1)-SUM1
I1=IJ-1
AL(I,J)=(AA(I1,MM-J+1)-SUM2)*U1
160 CONTINUE
120 CONTINUE
DO 200 I=2,NN
SUM1=0.D0
NI=NONN1(I)-1
DO 210 J=1,I-1
IF(J.GT.NI) GO TO 220
JJ=I-J
I1=J+1
SUM1=SUM1+AL(JJ,I1)*YY(JJ)
210 CONTINUE
220 CONTINUE
YY(I)=YY(I)-SUM1
200 CONTINUE
RR(NN)=YY(NN)/UU(NN,1)
DO 230 J=1,NN-1
SUM2=0.D0
I=NN-J
DO 240 I1=2,MM
K=J+2-I1
SUM2=SUM2+UU(I,I1)*RR(NN-K+1)
240 CONTINUE
RR(I)=(YY(I)-SUM2)/UU(I,1)
230 CONTINUE
RETURN
END
SUBROUTINE STRESS(IS,ID,IL,PMIN)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /AB/ PSTRAN(4,600),DNPSRN(4,350)
COMMON /DE/ DEN(4,4)
COMMON /PQ/ PEQSRN(600)
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
DIMENSION SU(4),DL(4),DSTS0(4,600),DEQS(600),
1 DPSRN(4,600),DPEQR(600),RMIN(600),NPORE1(600)
PMIN=1.D10
PIL=1.D0
IF(IL.EQ.0) PIL=0.D0
DO 500 L=1,NELEM
IY=2*NOD(1,L)
JY=2*NOD(2,L)
KY=2*NOD(3,L)
IX=IY-1
JX=JY-1
KX=KY-1
DSRN1=B1(2,L)*V(IX)+B1(4,L)*V(JX)+B1(6,L)*V(KX)
DSRN2=B1(1,L)*V(IY)+B1(3,L)*V(JY)+B1(5,L)*V(KY)
DSRN5=B1(1,L)*V(IX)+B1(2,L)*V(IY)+B1(3,L)*V(JX)
DSRN3=DSRN5+B1(4,L)*V(JY)+B1(5,L)*V(KX)+B1(6,L)*V(KY)
IF(IS.EQ.2) DSRN4=A1(1,L)*V(IX)+A1(2,L)*V(JX)+A1(3,L)*V(KX)
DSR1=B1(1,L)*V(IX)+B1(3,L)*V(JX)+B1(5,L)*V(KX)
DSR2=B1(2,L)*V(IY)+B1(4,L)*V(JY)+B1(6,L)*V(KY)
DSR1=DSR1-DSR2
DSTS1=D(1,1,L)*DSRN1+D(1,2,L)*DSRN2+D(1,3,L)*DSRN3
DSTS2=D(2,1,L)*DSRN1+D(2,2,L)*DSRN2+D(2,3,L)*DSRN3
DSTS3=D(3,1,L)*DSRN1+D(3,2,L)*DSRN2+D(3,3,L)*DSRN3
DSTS4=0.D0
IF(IS.NE.2) GO TO 10
DSTS1=DSTS1+D(1,4,L)*DSRN4
DSTS2=DSTS2+D(2,4,L)*DSRN4
DSTS3=DSTS3+D(3,4,L)*DSRN4
DSTS4=D(4,1,L)*DSRN1+D(4,2,L)*DSRN2+D(4,3,L)*DSRN3
1 +D(4,4,L)*DSRN4
10 CONTINUE
DSTS0(1,L)=DSTS1
DSTS0(2,L)=DSTS2
DSTS0(3,L)=DSTS3
DSTS0(4,L)=DSTS4
CT(L)=1.D0
DSM=0.D0
DO 20 I=1,3
K=I
IF(I.EQ.3) K=4
20 DSM=DSM+STRES(K,L)
DSM=DSM*AINV3
DO 30 I=1,3
K=I
IF(I.EQ.3) K=4
30 DL(K)=STRES(K,L)-DSM
DL(3)=STRES(3,L)
DSTS1=DSTS1+STRES(3,L)*DSR1*PIL
DSTS2=DSTS2-STRES(3,L)*DSR1*PIL
DSTS3=DSTS3+0.5D0*(STRES(2,L)-STRES(1,L))*DSR1*PIL
DSRN4=COMP*(DSTS1+DSTS2+DSTS4)-DSRN1-DSRN2
IF(IS.EQ.1) DSRN4=0.D0
IF(IS.EQ.2) GO TO 40
DSTS0(4,L)=(DSRN1+DSRN2)*COMP1-DSTS0(1,L)-DSTS0(2,L)
DSTS4=DSTS0(4,L)
IF(IS.EQ.0) DSTS4=0.D0
40 CONTINUE
IF(NSTEP.EQ.0) GO TO 50
DSM=(DSTS1+DSTS2+DSTS4)*AINV3
DST1=DSTS1-DSM
DST2=DSTS2-DSM
DST4=DSTS4-DSM
DST3=DSTS3
CT(L)=DST1*DL(1)+DST2*DL(2)+DST4*DL(4)+2.D0*DST3*DL(3)
P=(DST1*DST1+DST2*DST2+DST4*DST4+2.D0*DST3*DST3)*
1 (DL(1)**2+DL(2)**2+DL(4)**2+2.D0*DL(3)**2)
CT(L)=CT(L)/SQRT(P)
50 CONTINUE
DSRN(1,L)=DSRN1
DSRN(2,L)=DSRN2
DSRN(3,L)=DSRN3
DSRN(4,L)=DSRN4
DSTS(1,L)=DSTS1
DSTS(2,L)=DSTS2
DSTS(3,L)=DSTS3
DSTS(4,L)=DSTS4
STX=STRES(1,L)+DSTS(1,L)
STY=STRES(2,L)+DSTS(2,L)
STZ=STRES(4,L)+DSTS(4,L)
STXY=STRES(3,L)+DSTS(3,L)
YY=SQRT(0.5D0*((STX-STY)**2+(STY-STZ)**2+(STZ-STX)**2
1 +6.D0*STXY*STXY))
DEQST=YY-EQST1(L)
DEQS(L)=DEQST
IF(NPORE(L).EQ.1) GO TO 60
YY1=YP0*ALPH/YY
STX=DSTS(1,L)
STY=DSTS(2,L)
STZ=DSTS(4,L)
STXY=DSTS(3,L)
YA=0.5D0*((STX-STY)**2+(STY-STZ)**2+(STZ-STX)**2+6.D0*STXY*STXY)
YB=YA-(2.D0*EQST1(L)*DEQST+DEQST*DEQST)
YPP=YP0
IF(NPORE(L).EQ.2) YPP=YP1(L)
YC=(ALPH*YPP)**2-EQST1(L)**2
YC=YB*YB+4.D0*YA*YC
IF(YC.GT.0.D0) GO TO 70
YY1=1.D10
GO TO 80
70 CONTINUE
IF(YA.GT.1.D-10) GO TO 90
YY1=1.D10
GO TO 80
90 YY1=(YB+SQRT(YC))/(2.D0*YA)
GO TO 80
60 CONTINUE
DO 100 I=1,4
SU(I)=0.D0
DO 110 J=1,4
110 SU(I)=SU(I)+DEN(I,J)*DSTS0(J,L)
100 CONTINUE
DPSRN(1,L)=DSRN(1,L)-SU(1)
DPSRN(2,L)=DSRN(2,L)-SU(2)
DPSRN(3,L)=DSRN(3,L)-SU(3)
DPSRN(4,L)=DSRN(4,L)-SU(4)
PST1=DPSRN(1,L)
PST2=DPSRN(2,L)
PST3=DPSRN(3,L)
PSRD=SQRT(4.D0*AINV3*(PST1**2+PST1*PST2+PST2**2+0.25D0*PST3**2))
DPEQR(L)=PSRD
IF(PSRD.GT.1.D-10) GO TO 120
YY1=1.D10
GO TO 80
120 YY1=DEQP/PSRD
80 CONTINUE
RMIN(L)=YY1
500 CONTINUE
IF(NSTEP.EQ.0) GO TO 300
DO 130 L=1,NELEM
NPORE1(L)=NPORE(L)
PFUNC(L)=1.D0
IF(NPORE(L).NE.1) GO TO 130
IF(ID.EQ.0.OR.ID.EQ.5) GO TO 140
THETA0(L)=PAI2-ROW*PEQSRN(L)**2
IF(THETA0(L).LT.PAI1) THETA0(L)=PAI1
CS=COS(THETA0(L))
CS=CS/(1.D0+CS)
PFUNC(L)=CS+(1.D0-CS)*CT(L)
GO TO 150
140 PFUNC(L)=CT(L)
150 CONTINUE
IF(PFUNC(L).GT.0.D0) GO TO 130
NPORE(L)=2
YP1(L)=EQSTS(L)
130 CONTINUE
300 CONTINUE
DO 160 L=1,NELEM
IF(NPORE1(L).EQ.2) GO TO 160
IF(RMIN(L).GE.PMIN) GO TO 160
IF(RMIN(L).LE.0.D0) GO TO 160
PMIN=RMIN(L)
L1=L
160 CONTINUE
NPORE(L1)=1
IF(NSTEP.EQ.0) GO TO 170
IF(PMIN.GT.10.D0) PMIN=10.D0
170 CONTINUE
DO 180 L=1,NELEM
IF(NPORE1(L).NE.2) GO TO 180
IF(RMIN(L).GT.PMIN) GO TO 180
NPORE(L)=1
180 CONTINUE
DO 200 L=1,NELEM
DO 210 I=1,4
STRES(I,L)=STRES(I,L)+DSTS(I,L)*PMIN
STRAN(I,L)=STRAN(I,L)+DSRN(I,L)*PMIN
210 CONTINUE
EQST1(L)=SQRT(0.5D0*((STRES(1,L)-STRES(2,L))**2+(STRES(2,L)-
1 STRES(4,L))**2+(STRES(4,L)-STRES(1,L))**2+6.0*STRES(3,L)**2))
DSR1=DSRN(1,L)
DSR2=DSRN(2,L)
DSR3=DSRN(3,L)
DSR4=DSRN(4,L)
P=AINV3*(DSR1+DSR2+DSR4)
DSR1=DSR1-P
DSR2=DSR2-P
DSR4=DSR4-P
SS1=(DSR1**2+DSR2**2+DSR4**2+0.5D0*DSR3**2)*AINV3
SS1=SQRT(2.D0*SS1)
DEQSRN(L)=SS1*PMIN
EQSRN(L)=EQSRN(L)+DEQSRN(L)
IF(NPORE(L).NE.1) GO TO 220
PSTRAN(1,L)=PSTRAN(1,L)+DPSRN(1,L)*PMIN
PSTRAN(2,L)=PSTRAN(2,L)+DPSRN(2,L)*PMIN
PSTRAN(3,L)=PSTRAN(3,L)+DPSRN(3,L)*PMIN
PSTRAN(4,L)=-(PSTRAN(1,L)+PSTRAN(2,L))
PEQSRN(L)=PEQSRN(L)+DPEQR(L)*PMIN
EQSTS(L)=YP*(COEF+EQSRN(L))**AN
P=EQSTS(L)/EQST1(L)
IF(P.GE.1.D0) P=1.D0
EQST1(L)=P*EQST1(L)
DO 230 I=1,4
230 STRES(I,L)=P*STRES(I,L)
220 CONTINUE
200 CONTINUE
DO 240 I=1,NPOIN
J=2*I
K=J-1
PREX(1,I)=XR(1,I)
PREX(2,I)=XR(2,I)
XR(1,I)=XR(1,I)+V(K)*PMIN
240 XR(2,I)=XR(2,I)+V(J)*PMIN
IF(NSTEP.NE.0) GO TO 250
WRITE(6,260) PMIN
250 CONTINUE
260 FORMAT(1H ,'VALUE OF RMIN AT FIRST STEP= ',D15.7/)
RETURN
END
SUBROUTINE LOAD(PUN,PUNCH,EXTEN,VNECK,AREA0,VOLM0,VOLTOT,VOLT1,
1 SPUN,SPPUN,PMAX,UMAX,PMIN)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /XY/ D(4,4,600),B1(6,600),BM(4,6),SK(6,6),DEM(4,4),
1 DSK(3,6),FR(6),FT(6),SS(4),AREA(600),A1(3,600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /DT/ THICK,YOUNG,G,G1,ALPH,YP,AN,COEF,POIS
COMMON /YZ/ PREX(2,350),ATUSA(600),EVOL(600),ROW,YP0,DEQP
COMMON /WA/ ALEN,WW,ASRAT
COMMON /PG/ PREXG(2,600)
COMMON /FP/ PFORCE(3000),PSTOKE(3000),PNECK(3000)
COMMON /FQ/ PFORC1(3000)
COMMON /CN/ PAI,PAI1,PAI2,AINV3,COMP,COMP1,ANP
COMMON /NO/ NON1(650),NON2(650),NON3(650),NON4(650),NONP,NON
1 ,NONN1(650),NONN2(650),NONN3(650),NONN4(650)
DIMENSION TH(100)
DO 10 I=1,2*NX+2
DO 20 J=1,MP
JJ=J-I+NON
IF(JJ.GT.NONP) GO TO 10
IF(JJ.LE.0) GO TO 20
FORCE(I)=FORCE(I)+FSMAX(I,JJ)*V(J)*PMIN
20 CONTINUE
10 CONTINUE
SUM=0.0D0
DO 30 I=1,NX+1
K=2*I
30 SUM=SUM+FORCE(K)
P=2.D0
IF(ISORN.EQ.2) P=1.D0
PUN=SUM*P
DO 40 L=1,NELEM
PREXG(1,L)=XG(1,L)
PREXG(2,L)=XG(2,L)
DO 50 J=1,2
SUM=0.D0
DO 60 I=1,3
N=NOD(I,L)
60 SUM=SUM+XR(J,N)
XG(J,L)=SUM*AINV3
50 CONTINUE
40 CONTINUE
DO 70 I=1,NX
IF(ISORN.EQ.2) GO TO 80
TH(I)=ATUSA(I)
GO TO 70
80 TH(I)=PAI*(XR(1,I)+XR(1,I+1))
70 CONTINUE
SUM=0.0D0
DX1=XR(1,2)
DO 90 I=1,NX
90 SUM=SUM+STRES(2,I)*TH(I)*DX1
P=2.D0
IF(ISORN.EQ.2) P=1.D0
PUNCH=SUM*P
P=1.D0/(YP0*AREA0)
SPPUN=PUNCH*P
SPUN=PUN*P
EXTEN=(XR(2,1)-ALEN)/ALEN
VNECK=(WW-XR(1,NPOIN))/WW
PFORCE(NSTEP)=SPPUN
PFORC1(NSTEP)=SPUN
PSTOKE(NSTEP)=EXTEN
PNECK(NSTEP)=VNECK
IF(NSTEP.EQ.1) GO TO 100
IF(SPUN.LE.PFORC1(NSTEP-1)) GO TO 100
IF(PMAX.GT.SPUN) GO TO 100
PMAX=SPUN
UMAX=EXTEN
100 CONTINUE
IF(ISORN.NE.0) GO TO 110
DO 120 I=1,NELEM
120 ATUSA(I)=THICK*EXP(STRAN(4,I))
110 CONTINUE
VOLT1=VOLTOT
SUM=0.D0
DO 130 I=1,NELEM
II=NOD(1,I)
IJ=NOD(2,I)
IK=NOD(3,I)
AREAP=XR(1,II)*(XR(2,IJ)-XR(2,IK))+XR(1,IJ)*(XR(2,IK)-XR(2,II))
1 +XR(1,IK)*(XR(2,II)-XR(2,IJ))
AREA(I)=AREAP*0.5D0
IF(ISORN.EQ.2) GO TO 140
P=ATUSA(I)
GO TO 150
140 P=2.D0*PAI*XG(1,I)
150 CONTINUE
EVOL(I)=P*AREA(I)
SUM=SUM+EVOL(I)
130 CONTINUE
P=1.D0
IF(ISORN.NE.2) P=2.D0
VOLTOT=SUM/VOLM0*P
RETURN
END
SUBROUTINE NODST
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XK/ NOD(3,600),NKN(650),NPORE(600),NPOR(600)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /AB/ PSTRAN(4,600),DNPSRN(4,350)
DIMENSION SM(4),SM1(4),SSM(4)
DO 100 I=1,NPOIN
SUM=0.0D0
SUM1=0.0D0
DO 10 IJ=1,4
SSM(IJ)=0.0D0
SM(IJ)=0.0D0
10 SM1(IJ)=0.0D0
NME=0
DO 20 L=1,NELEM
P=0.0D0
IF(NPORE(L).NE.0) P=1.D0
DO 20 J=1,3
N=NOD(J,L)
IF(I.NE.N) GO TO 20
NME=NME+1
SUM=SUM+EQST1(L)
SUM1=SUM1+DEQSRN(L)
DO 30 IJ=1,4
SSM(IJ)=SSM(IJ)+PSTRAN(IJ,L)*P
SM(IJ)=SM(IJ)+STRES(IJ,L)
30 SM1(IJ)=SM1(IJ)+STRAN(IJ,L)
20 CONTINUE
AME1=1.D0/FLOAT(NME)
ST(I)=SUM*AME1
DSR(I)=SUM1*AME1
DO 40 K=1,3
DNPSRN(K,I)=SSM(K)*AME1
DNSTS(K,I)=SM(K)*AME1
40 DNSRN(K,I)=SM1(K)*AME1
DNPSRN(4,I)=SSM(4)*AME1
DNSTS(4,I)=SM(4)*AME1
DNSRN(4,I)=SM1(4)*AME1
100 CONTINUE
RETURN
END
SUBROUTINE SPWRIT(SPUN,PUNCH,SPPUN,VNECK,EXTEN,VOLTOT,NPL,NPM)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /NN/ NPE(600),NPEE(600)
WRITE(6,10) NSTEP,NPL,NPM
WRITE(6,20) SPUN
WRITE(6,30) PUNCH,SPPUN,VNECK,EXTEN
WRITE(6,40) (NPE(I),I=1,NPL)
WRITE(6,*)
WRITE(6,50) VOLTOT
WRITE(6,60) (FORCE(I),I=1,2*NX+2)
N1=NPOIN-NX
N2=NPOIN
WRITE(6,70) (ST(I),I=N1,N2)
WRITE(6,80)
WRITE(6,90) (DNSTS(1,I),I=N1,N2)
WRITE(6,100) (DNSTS(2,I),I=N1,N2)
WRITE(6,200) (DNSTS(3,I),I=N1,N2)
IF(ISORN.EQ.0) GO TO 600
WRITE(6,300) (DNSTS(4,I),I=N1,N2)
600 CONTINUE
IF(NPM.EQ.0) GO TO 500
WRITE(6,*)
WRITE(6,400) (NPEE(I),I=1,NPM)
500 CONTINUE
10 FORMAT(//1H ,'CALCULATION STEP=',2X,I4,5X,'NUMBER OF PLASTIC
1 ELEMENTS=',2X,I4,5X,'NUMBER OF UNLOADED ELEMENTS=',2X,I4//)
20 FORMAT(1H ,'NORMALIZED TENSILE FORCE FROM NODAL FORCE= ',D15.7/)
30 FORMAT(1H ,'TENSILE FORCE= ',D15.7,2X,'F/(YP0*AREA0)= ', D15.7,
1 2X,'V/W= ',D15.7,2X,'U/L= ',D15.7/)
40 FORMAT(1H ,'ELEMENT NUMBERS IN PLASTIC STATE',/(1H ,30I4))
50 FORMAT(1H ,'RELATIVE TOTAL VOLUME= ',D15.7/ /)
60 FORMAT(1H ,'NODAL FORCES ALONG THE CHUCK',/(1H ,8D13.5))
70 FORMAT(1H ,'NOD EQSTRESS',/1H ,7D15.7 /)
80 FORMAT(1H ,'STRESS AT NODES'/)
90 FORMAT(1H ,'STRESSX=',/1H ,7D15.7)
100 FORMAT(1H ,'STRESSY=',/1H ,7D15.7)
200 FORMAT(1H ,'STRESSXY=',/1H ,7D15.7)
300 FORMAT(1H ,'STRESSZ=',/1H, ,7D15.7//)
400 FORMAT(1H ,'ELEMENT NUMBERS OF UNLOADED ELEMENT',/(1H ,30I4))
RETURN
END
SUBROUTINE DEWRIT
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /XN/ XR(2,350),XG(2,600),V(650),FORCE(20),FSMAX(20,60)
COMMON /YN/ NELEM,NPOIN,MP,NSTEP
COMMON /IB/ ISORN,IND,ILARGE,IEXACT,NX,NY
COMMON /YX/ STRAN(4,600),STRES(4,600),DSRN(4,600),RATIO(600),
1 DSTS(4,600),EQSTS(600),EQSRN(600),ST(350),PFUNC(600),YP1(600),
2 DEQSRN(600),DSR(350),THETA0(600),DNSRN(4,350),EQST1(600),
3 DNSTS(4,350),CT(600)
COMMON /AB/ PSTRAN(4,600),DNPSRN(4,350)
WRITE(6,10) ((XR(I,J),I=1,2),J=1,NPOIN)
WRITE(6,20) (ST(I),I=1,NPOIN)
WRITE(6,30) (DSR(I),I=1,NPOIN)
WRITE(6,80)
WRITE(6,81) (DNSTS(1,I),I=1,NPOIN)
WRITE(6,82) (DNSTS(2,I),I=1,NPOIN)
WRITE(6,83) (DNSTS(3,I),I=1,NPOIN)
IF(ISORN.EQ.0) GO TO 150
WRITE(6,84) (DNSTS(4,I),I=1,NPOIN)
150 CONTINUE
WRITE(6,85)
WRITE(6,86) (DNSRN(1,I),I=1,NPOIN)
WRITE(6,87) (DNSRN(2,I),I=1,NPOIN)
WRITE(6,88) (DNSRN(3,I),I=1,NPOIN)
IF(ISORN.EQ.1) GO TO 160
WRITE(6,89) (DNSRN(4,I),I=1,NPOIN)
160 CONTINUE
WRITE(6,90)
WRITE(6,91) (DNPSRN(1,I),I=1,NPOIN)
WRITE(6,92) (DNPSRN(2,I),I=1,NPOIN)
WRITE(6,93) (DNPSRN(3,I),I=1,NPOIN)
IF(ISORN.EQ.1) GO TO 170
WRITE(6,94) (DNPSRN(4,I),I=1,NPOIN)
170 CONTINUE
10 FORMAT(1H ,'NODAL COORDINATES',/(1H ,1P10D13.5))
20 FORMAT(1H ,'NOD EQSTRESS',/(1H ,1P10D13.5))
30 FORMAT(1H ,'NODE DEQSRN',/(1H ,1P10D13.5))
80 FORMAT(1H ,'STRESS AT NODES'/)
81 FORMAT(1H ,'STRESSX=',/(1H ,1P10D13.5))
82 FORMAT(1H ,'STRESSY=',/(1H ,1P10D13.5))
83 FORMAT(1H ,'STRESSXY=',/(1H ,1P10D13.5))
84 FORMAT(1H ,'STRESSZ=',/(1H ,1P10D13.5))
85 FORMAT(1H ,'STRAIN AT NODES'/)
86 FORMAT(1H ,'STRAINX=',/(1H ,1P10D13.5))
87 FORMAT(1H ,'STRAINY=',/(1H ,1P10D13.5))
88 FORMAT(1H ,'STRAINXY=',/(1H ,1P10D13.5))
89 FORMAT(1H ,'STRAINZ=',/(1H ,1P10D13.5))
90 FORMAT(1H ,'NODE PSTRN'/)
91 FORMAT(1H ,'PSTRAINX=',/(1H ,1P10D13.5))
92 FORMAT(1H ,'PSTRAINY=',/(1H ,1P10D13.5))
93 FORMAT(1H ,'PSTRAINXY=',/(1H ,1P10D13.5))
94 FORMAT(1H ,'PSTRAINZ=',/(1H ,1P10D13.5))
RETURN
END
|
|