add documents
This commit is contained in:
+645
@@ -0,0 +1,645 @@
|
||||
<!-- source-page: 361 -->
|
||||
|
||||
```fortran
|
||||
SUBROUTINE STIFMP (COORD,EPSTN,IINCS,LNODS,MATNO,MELEM, STIF 1
|
||||
. MEVAB,MMATS,MPOIN,MTOTG,NCRIT,NELEM, STIF 2
|
||||
. NEVAB,NGAUS,NNODE,PROPS,STRSG) STIF 3
|
||||
C**************************STIF 4
|
||||
C STIF 5
|
||||
C*** EVALUATE STIFFNESS MATRICES FOR NON-LAYERED STIF 6
|
||||
C*** ELASTO-PLASTIC MINDLIN PLATE ELEMENTS STIF 7
|
||||
C STIF 8
|
||||
C**************************STIF 9
|
||||
DIMENSION AVECT(5), STIF 10
|
||||
. CARTD(2,9),COORD(MPOIN,2), STIF 11
|
||||
. DERIV(2,9),DEVIA(4),DVECT(5),ELCOD(2,9), STIF 12
|
||||
. EPSTN(MTOTG),ESTIF(27,27),GPCOD(2,9),LNODS(MELEM,9), STIF 13
|
||||
. MATNO(MELEM),POSGP(4),PROPS(MMATS,8),SHAPE(9),STRES(5), STIF 14
|
||||
. STRSG(5,MTOTG),WEIGP(4), STIF 15
|
||||
. DFLEX(3,3),DSHER(2,2),BFLEI(3,3),BFLEJ(3,3), STIF 16
|
||||
. BSHEI(2,3),BSHEJ(2,3),DUMMY(3,3) STIF 17
|
||||
REWIND 1 STIF 18
|
||||
REWIND 3 STIF 19
|
||||
KGAUS=0 STIF 20
|
||||
C STIF 21
|
||||
C*** LOOP OVER EACH ELEMENT STIF 22
|
||||
C STIF 23
|
||||
DO 70 IELEM=1,NELEM STIF 24
|
||||
LPROP=MATNO(IELEM) STIF 25
|
||||
C STIF 26
|
||||
C*** EVALUATE THE COORDINATES OF THE ELEMENT NODAL POINTS STIF 27
|
||||
C STIF 28
|
||||
DO 10 INODE=1,NNODE STIF 29
|
||||
LNODE=LNODS(IELEM,INODE) STIF 30
|
||||
LNODE=IABS(LNODE) STIF 31
|
||||
DO 10 IDIME=1,2 STIF 32
|
||||
10 ELCOD(IDIME,INODE)=COORD(LNODE,IDIME) STIF 33
|
||||
C STIF 34
|
||||
C*** INITIALIZE THE ELEMENT STIFFNESS MATRIX STIF 35
|
||||
C STIF 36
|
||||
DO 20 IEVAB=1,NEVAB STIF 37
|
||||
DO 20 JEVAB=1,NEVAB STIF 38
|
||||
20 ESTIF(IEVAB,JEVAB)=0.0 STIF 39
|
||||
C STIF 40
|
||||
C*** EVALUATE PART OF STIFFNESS MATRIX STIF 41
|
||||
C ASSOCIATED WITH BENDING DEFORMATION STIF 42
|
||||
C STIF 43
|
||||
KGASP=C STIF 44
|
||||
C STIF 45
|
||||
C*** ENTER LOOPS FOR AREA NUMERICAL INTEGRATION STIF 46
|
||||
C STIF 47
|
||||
C STIF 48
|
||||
C*** SET UP GAUSSIAN INTEGRATION CONSTANTS STIF 49
|
||||
C STIF 50
|
||||
CALL GAUSSQ (NGAUS,POSGP,WEIGP) STIF 51
|
||||
DO 50 IGAUS=1,NGAUS STIF 52
|
||||
DO 50 JGAUS=1,NGAUS STIF 53
|
||||
KGASP=KGASP+1 STIF 54
|
||||
EXISP=POSGP(IGAUS) STIF 55
|
||||
ETASP=POSGP(JGAUS) STIF 56
|
||||
C STIF 57
|
||||
C*** EVALUATE THE SHAPE FUNCTIONS, ELEMENTAL AREA,ETC STIF 58
|
||||
C STIF 59
|
||||
CALL SFR2 (DERIV,ETASP,EXISP,NNODE,SHAPE) STIF 60
|
||||
CALL JACOB2 (CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM, STIF 61
|
||||
KGASP,NNODE,SHAPE) STIF 62
|
||||
DAREA=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS) STIF 63
|
||||
```
|
||||
|
||||
<!-- source-page: 362 -->
|
||||
|
||||
```csv
|
||||
C
|
||||
C*** EVALUATE THE B AND DB MATRICES
|
||||
C
|
||||
CALL MODPB (DFLEX,DUMMY,DSHER,LPROP,MMATS,PROPS,
|
||||
0, 1, 0)
|
||||
IF(IINCS.EQ.1) GO TO 80
|
||||
KGAUS=KGAUS+1
|
||||
IF(EPSTN(KGAUS).EQ.0.0) GO TO 80
|
||||
DO 90 ISTRE=1,3
|
||||
90 STRES(ISTRE)=STRSG(ISTRE,KGAUS)
|
||||
HARDS=PROPS(LPROP,7)
|
||||
CALL INVMP (DEVIA,NCRIT,SINT3,STEFF,STRES,THETA,
|
||||
VARJ2,YIELD)
|
||||
CALL FLOWMP (ABETA,AVECT,DEVIA,DFLEX,DVECT,HARDS,
|
||||
NCRIT,SINT3,STEFF,THETA,VARJ2)
|
||||
DO 100 ISTRE=1,3
|
||||
DO 100 JSTRE=1,3
|
||||
100 DFLEX(ISTRE,JSTRE)=DFLEX(ISTRE,JSTRE)-ABETA*DVECT(ISTRE)*
|
||||
.DVECT(JSTRE)
|
||||
80 CONTINUE
|
||||
C
|
||||
C*** CALCULATE THE ELEMENT STIFFNESSES
|
||||
C
|
||||
DO 30 INODE=1,NNODE
|
||||
CALL BMATPB (BFLEI,DUMMY,BSHEI,CARTD,INODE,SHAPE,
|
||||
0, 1, 0)
|
||||
DO 30 JNODE=INODE,NNODE
|
||||
CALL BMATPB (BFLEJ,DUMMY,BSHEJ,CARTD,JNODE,SHAPE,
|
||||
0, 1, 0)
|
||||
30 CALL SUBMP (BFLEI,BFLEJ,DAREA,DFLEX,ESTIF,INODE,
|
||||
JNODE, 3, 3, 3)
|
||||
50 CONTINUE
|
||||
C
|
||||
C*** EVALUATE PART OF STIFFNESS MATRIX
|
||||
C ASSOCIATED WITH SHEAR DEFORMATION
|
||||
C
|
||||
KGASP=0
|
||||
NGAUM=NGAUS-1
|
||||
C
|
||||
C*** ENTER LOOPS FOR AREA INTEGRATION
|
||||
C
|
||||
C*** SET UP GAUSSIAN INTEGRATION CONSTANTS
|
||||
C
|
||||
CALL GAUSSQ (NGAUM,POSGP,WEIGP)
|
||||
DO 51 IGAUS=1,NGAUM
|
||||
DO 51 JGAUS=1,NGAUM
|
||||
KGASP=KGASP+1
|
||||
EXISP=POSGP(IGAUS)
|
||||
ETASP=POSGP(JGAUS)
|
||||
C
|
||||
C*** EVALUATE THE SHAPE FUNCTIONS,ELEMENTAL AREA,ETC
|
||||
C
|
||||
CALL SFR2 (DERIV,ETASP,EXISP,NNODE,SHAPE)
|
||||
CALL JACOB2 (CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM,
|
||||
KGASP,NNODE,SHAPE)
|
||||
DAREA=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS)
|
||||
C
|
||||
C*** EVALUATE THE B AND DB MATRICES
|
||||
C
|
||||
CALL MODPB (DFLEX,DUMMY,DSHER,LPROP,MMATS,PROPS,
|
||||
0, 0, 1)
|
||||
C
|
||||
C*** EVALUATE ELEMENT STIFFNESSES
|
||||
```
|
||||
|
||||
<!-- source-page: 363 -->
|
||||
|
||||
```csv
|
||||
C
|
||||
DO 31 INODE=1,NNODE
|
||||
CALL BMATPB (BFLEI,DUMMY,BSHEI,CARTD,INODE,SHAPE,
|
||||
0, 0, 1)
|
||||
DO 31 JNODE=INODE,NNODE
|
||||
CALL BMATPB (BFLEJ,DUMMY,BSHEJ,CARTD,JNODE,SHAPE,
|
||||
0, 0, 1)
|
||||
31 CALL SUBMP (BSHEI,BSHEJ,DAREA,DSHER,ESTIF,INODE,
|
||||
JNODE, 3, 2, 3)
|
||||
51 CONTINUE
|
||||
C
|
||||
C*** CONSTRUCT THE LOWER TRIANGLE OF THE STIFFNESS MATRIX
|
||||
C
|
||||
DO 60 IEVAB=1,NEVAB
|
||||
DO 60 JEVAB=IEVAB,NEVAB
|
||||
60 ESTIF(JEVAB,IEVAB)=ESTIF(IEVAB,JEVAB)
|
||||
C
|
||||
C*** STORE THE STIFFNESS MATRIX,STRESS MATRIX AND SAMPLING POINT
|
||||
C COORDINATES FOR EACH ELEMENT ON DISC FILE
|
||||
C
|
||||
WRITE(1) ESTIF
|
||||
WRITE(3) GPCOD
|
||||
70 CONTINUE
|
||||
RETURN
|
||||
END
|
||||
STIF 129
|
||||
STIF 130
|
||||
STIF 131
|
||||
STIF 132
|
||||
STIF 133
|
||||
STIF 134
|
||||
STIF 135
|
||||
STIF 136
|
||||
STIF 137
|
||||
STIF 138
|
||||
STIF 139
|
||||
STIF 140
|
||||
STIF 141
|
||||
STIF 142
|
||||
STIF 143
|
||||
STIF 144
|
||||
STIF 145
|
||||
STIF 146
|
||||
STIF 147
|
||||
STIF 148
|
||||
STIF 149
|
||||
STIF 150
|
||||
STIF 151
|
||||
STIF 152
|
||||
STIF 153
|
||||
STIF 154
|
||||
```
|
||||
|
||||
# 9.5.14 Subroutine STRMP
|
||||
|
||||
This subroutine evaluates the bending moments and shear forces for Mindlin plates.
|
||||
|
||||
```csv
|
||||
SUBROUTINE STRMP (CARTD,DFLEX,DGRAD,DSHER,ELDIS,NNODE, STRP 1
|
||||
. SHAPE,STRES,IFFLE,IFSHE) STRP 2
|
||||
C**************************STRP 3
|
||||
C STRP 4
|
||||
C*** EVALUATES STRESS RESULTANTS FOR MINDLIN PLATE STRP 5
|
||||
C STRP 6
|
||||
C**************************STRP 7
|
||||
DIMENSION CARTD(2,9),DFLEX(3,3),DGRAD(6),DSHER(2,2), STRP 8
|
||||
. ELDIS(3,9),SHAPE(9),STRES(5) STRP 9
|
||||
C*** ZERO STRESS VECTOR STRP 10
|
||||
CALL VZERO (5,STRES) STRP 11
|
||||
C*** EVALUATE ROTATIONS AT GAUSS POINT, IF NEEDED STRP 12
|
||||
IF(IFSHE.EQ.0) GOTO 50 STRP 13
|
||||
XZROT=0.0 STRP 14
|
||||
YZROT=0.0 STRP 15
|
||||
DO 30 INODE=1,NNODE STRP 16
|
||||
XZROT=XZROT+SHAPE(INODE)*ELDIS(2,INODE) STRP 17
|
||||
30 YZROT=YZROT+SHAPE(INODE)*ELDIS(3,INODE) STRP 18
|
||||
C*** EVALUATE BENDING STRESS RESULTANTS STRP 19
|
||||
50 IF(IFFLE.EQ.0) GOTO 60 STRP 20
|
||||
. EFLXX=-DGRAD(2) STRP 21
|
||||
EFLYY=-DGRAD(6) STRP 22
|
||||
EFLXY=-(DGRAD(3)+DGRAD(5)) STRP 23
|
||||
STRES(1)=DFLEX(1,1)*EFLXX+DFLEX(1,2)*EFLYY STRP 24
|
||||
STRES(2)=DFLEX(2,1)*EFLXX+DFLEX(2,2)*EFLYY STRP 25
|
||||
STRES(3)=DFLEX(3,3)*EFLXY STRP 26
|
||||
```
|
||||
|
||||
<!-- source-page: 364 -->
|
||||
|
||||
<table><tr><td rowspan="2">C*** EVALUATE SHEAR STRESS RESULTANTS60 IF(IFSHE.EQ.0) RETURN</td><td>STRP</td><td>27</td></tr><tr><td>STRP</td><td>28</td></tr><tr><td>ESHXX=DGRAD(1)-XZROT</td><td>STRP</td><td>29</td></tr><tr><td>ESHYY=DGRAD(4)-YZROT</td><td>STRP</td><td>30</td></tr><tr><td>STRES(4)=DSHER(1,1)*ESHXX</td><td>STRP</td><td>31</td></tr><tr><td>STRES(5)=DSHER(2,2)*ESHYY</td><td>STRP</td><td>32</td></tr><tr><td>RETURN</td><td>STRP</td><td>33</td></tr><tr><td>END</td><td>STRP</td><td>34</td></tr></table>
|
||||
|
||||
# 9.5.15 Subroutine SUBMP
|
||||
|
||||
This subroutine evaluates $[B_{i}]^{T}D[B_{j}]detJ\times Gauss$ weights and is used in the evaluation of the element stiffness matrices.
|
||||
|
||||
```csv
|
||||
SUBROUTINE SUBMP (BIMAT,BJMAT,DAREA,DMATX,ESTIF,INODE, SUBP 1
|
||||
. JNODE,NCOLI,NROIJ,NCOLJ) SUBP 2
|
||||
C**************************SUBP 3
|
||||
C SUBP 4
|
||||
C*** CARRY OUT MATRIX MULTIPLICATION SUBP 5
|
||||
C SUBP 6
|
||||
C**************************SUBP 7
|
||||
DIMENSION BIMAT(NROIJ,NCOLI),BJMAT(NROIJ,NCOLJ), SUBP 8
|
||||
. DMATX(NROIJ,NROIJ),DBMAT(3,3), SUBP 9
|
||||
. ESTIF(27,27),SBSTF(3,3) SUBP 10
|
||||
C*** EVALUATE D*BJ SUBP 11
|
||||
DO 10 J=1,NCOLJ SUBP 12
|
||||
DO 10 I=1,NROIJ SUBP 13
|
||||
DBMAT(I,J)=0.0 SUBP 14
|
||||
DO 10 K=1,NROIJ SUBP 15
|
||||
10 DBMAT(I,J)=DBMAT(I,J)+DMATX(I,K)*BJMAT(K,J) SUBP 16
|
||||
C*** EVALUATE BIT*(D*BJ) SUBP 17
|
||||
DO 20 J=1,NCOLJ SUBP 18
|
||||
DO 20 I=1,NCOLI SUBP 19
|
||||
SBSTF(I,J)=0.0 SUBP 20
|
||||
DO 20 K=1,NROIJ SUBP 21
|
||||
20 SBSTF(I,J)=SBSTF(I,J)+BIMAT(K,I)*DBMAT(K,J) SUBP 22
|
||||
C*** ASSEMBLE SBSTF INTO ELEMENT STIFFNESS MATRIX SUBP 23
|
||||
IFROW=0 SUBP 24
|
||||
JFCOL=0 SUBP 25
|
||||
IFROW=(INODE-1)*3+IFROW SUBP 26
|
||||
JFCOL=(JNODE-1)*3+JFCOL SUBP 27
|
||||
DO 30 I=1,NCOLI SUBP 28
|
||||
IRSUB=IFROW+I SUBP 29
|
||||
DO 30 J=1,NCOLJ SUBP 30
|
||||
JCSUB=JFCOL+J SUBP 31
|
||||
30 ESTIF(IRSUB,JCSUB)=ESTIF(IRSUB,JCSUB)+SBSTF(I,J)*DAREA SUBP 32
|
||||
RETURN SUBP 33
|
||||
END SUBP 34
|
||||
```
|
||||
|
||||
# 9.5.16 Subroutines VZERO and ZEROMP
|
||||
|
||||
These routines simply set to zero the components of various vectors and arrays.
|
||||
|
||||
```txt
|
||||
SUBROUTINE VZERO (NCOMP, VECTO) ZERO 1
|
||||
C************************** ZERO 2
|
||||
C ZERO 3
|
||||
C*** ZEROES VECTOR VECTO ZERO 4
|
||||
C ZERO 5
|
||||
C************************** ZERO 6
|
||||
DIMENSION VECTO(NCOMP) ZERO 7
|
||||
DO 10 ICOMP=1,NCOMP ZERO 8
|
||||
10 VECTO(ICOMP)=0.0 ZERO 9
|
||||
RETURN ZERO 10
|
||||
END ZERO 11
|
||||
```
|
||||
|
||||
<!-- source-page: 365 -->
|
||||
|
||||
```txt
|
||||
SUBROUTINE ZEROMP (EFFST,ELOAD,EPSTN,MELEM,MEVAB,MTOTG, ZERP 1
|
||||
. MTOTV,MVFIX,NDOFN,NELEM,NEVAB,NGAUS, ZERP 2
|
||||
. NTOTG,NTOTV,NVFIX,STRSG,TDISP,TFACT, ZERP 3
|
||||
. TLOAD,TREAC) ZERP 4
|
||||
C**************************ZERP 5
|
||||
C ZERP 6
|
||||
C*** ZERO EFFST,ELOAD,EPSTN,STRSG,TDISP,TFACT,TLOAD,TREAC ZERP 7
|
||||
C ZERP 8
|
||||
C**************************ZERP 9
|
||||
DIMENSION ELOAD(MELEM,MEVAB),STRSG(5,MTOTG),TDISP(MTOTV), ZERP 10
|
||||
. TLOAD(MELEM,MEVAB),TREAC(MVFIX,3),EPSTN(MTOTG), ZERP 11
|
||||
. EFFST(MTOTG) ZERP 12
|
||||
TFACT=0.0 ZERP 13
|
||||
DO 30 IELEM=1,NELEM ZERP 14
|
||||
DO 30 IEVAB=1,NEVAB ZERP 15
|
||||
ELOAD(IELEM,IEVAB)=0.0 ZERP 16
|
||||
30 TLOAD(IELEM,IEVAB)=0.0 ZERP 17
|
||||
DO 40 ITOTV=1,NTOTV ZERP 18
|
||||
40 TDISP(ITOTV)=0.0 ZERP 19
|
||||
DO 50 IVFIX=1,NVFIX ZERP 20
|
||||
DO 50 IDOFN=1,NDOFN ZERP 21
|
||||
50 TREAC(IVFIX,IDOFN)=0.0 ZERP 22
|
||||
DO 60 ITOTG=1,NTOTG ZERP 23
|
||||
EPSTN(ITOTG)=0.0 ZERP 24
|
||||
EFFST(ITOTG)=0.0 ZERP 25
|
||||
DO 60 ISTR1=1,5 ZERP 26
|
||||
60 STRSG(ISTR1,ITOTG)=0.0 ZERP 27
|
||||
RETURN ZERP 28
|
||||
END ZERP 29
|
||||
```
|
||||
|
||||
# 9.6 Software for the layered approach
|
||||
|
||||
# 9.6.1 Overall program structure.
|
||||
|
||||
The overall program structure for the elasto-plastic Mindlin plate bending analysis program using the layered approach is given in Fig. 9.5. This program is named MINDLAY.
|
||||
|
||||
The program can solve problems of the same size as those solved by program MINDLIN. A maximum of 26 layers is allowed.
|
||||
|
||||
All new routines are now documented and these include: FEAM, DEPMPA, LAYMPA, MDMPA, OUTMPA, RESMPA, STIMPA and STRMPA. The outer routines, which have been described earlier, include ALGOR, BMATPB, CHECK1, CHECK2, ECHO, FRONT, INCREM, INPUT, JACOB2 and NODEXY.
|
||||
|
||||
The files which are used in the program are 5 (cardreader), 6 (lineprinter) and 1, 2, 3, 4, 8 (scratch files).
|
||||
|
||||
# 9.6.2 Subroutine FEAM
|
||||
|
||||
This routine organises the calling of the main routines in sequence.
|
||||
|
||||
<!-- source-page: 366 -->
|
||||
|
||||

|
||||
|
||||
<details>
|
||||
<summary>flowchart</summary>
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A["START"] --> B["DIMMP<br>Presents the variables associated with the dynamic dimensioning process"]
|
||||
B --> C["INPUT<br>Inputs data defining geometry, boundary conditions and material properties"]
|
||||
C --> D["ZEROMP<br>Sets to zero arrays required for accumulation of data"]
|
||||
D --> E["MINDPB<br>Inputs additional data required for Mindlin plate analysis"]
|
||||
E --> F["LOADPB<br>Reads loading data and evaluate the equivalent nodal forces for distributed loading"]
|
||||
F --> G["INCREM<br>Increments the applied load according to specified load factors"]
|
||||
G --> H["ALGOR<br>Sets indicator to identify the type of solution algorithm, i.e., initial or tangential stiffness etc."]
|
||||
H --> I["A"]
|
||||
```
|
||||
</details>
|
||||
|
||||
Fig. 9.5 Overall program structure of program MINDLAY.
|
||||
|
||||
<!-- source-page: 367 -->
|
||||
|
||||

|
||||
|
||||
<details>
|
||||
<summary>flowchart</summary>
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A["A"] --> B{Is it necessary to recalculate stiffness matrix with present algorithm?}
|
||||
B -->|No| C["END"]
|
||||
B -->|Yes| D["STIFMPA<br>Calculate element stiffness matrices for layered elasto-plastic Mindlin plate"]
|
||||
D --> E["FRONT<br>Solve the simultaneous equation system by the frontal method"]
|
||||
E --> F["RESMPA<br>Evaluate the residual force vector for the layered elasto-plastic Mindlin plate"]
|
||||
F --> G["CONVMP<br>Check whether solution has converged using a residual force or displacement norm"]
|
||||
G --> H["OUTMPA<br>Prints out the displacements, reactions and stresses and stress resultants for the current load increment"]
|
||||
H --> I["LOAD INCREMENT LOOP"]
|
||||
H --> J["LOAD ITERATION LOOP"]
|
||||
```
|
||||
</details>
|
||||
|
||||
Fig. 9.5 Overall program structure of program MINDLAY (continued).
|
||||
|
||||
<!-- source-page: 368 -->
|
||||
|
||||
```txt
|
||||
PROGRAM FEAM(INPUT, OUTPUT, TAPE5=INPUT, TAPE6=OUTPUT, TAPE1, TAPE2, TAPE3, TAPE4, TAPE8, TAPE9)
|
||||
C
|
||||
C
|
||||
C*** ELASTO-PLASTIC ANALYSIS OF LAYERED MINDLIN PLATES USING
|
||||
C*** 4-, 8-, 9-NODED OR HETEROSIS ISOPARAMETRIC QUADRILATERALS
|
||||
C
|
||||
C
|
||||
DIMENSION ASDIS(240), COORD(80, 2), EFFST(225), ELOAD(25, 27),
|
||||
EPSTN(225), ESTIF(27, 27),
|
||||
EQRHS(10), EQUAT(40, 10), FIXED(240),
|
||||
IFFIX(240), GLOAD(40), GSTIF(860), LNODS(25, 9), LOCEL(27),
|
||||
MATNO(25), NACVA(40), NAMEV(10), NCDIS(4), NCRES(4),
|
||||
NDEST(27), NDFRO(25), NOFIX(40), NOUTP(2), NPIVO(10),
|
||||
POSGP(4), PRESC(40, 3), PROPS(10, 8), REFOR(240),
|
||||
RLOAD(25, 27), STRSG(5, 225), TOFOR(240),
|
||||
TDISP(240), TLOAD(25, 27), TREAC(40, 3), VECRV(40),
|
||||
WEIGP(4)
|
||||
C
|
||||
C*** PRESET VARIABLES ASSOCIATED WITH DYNAMIC DIMENSIONS
|
||||
C
|
||||
CALL DIMMP (MBUFA, MELEM, MEVAB, MFRON, MMATS, MPOIN,
|
||||
MSTIF, MTOTG, MTOTV, MVFIX, NDIME, NDOFN,
|
||||
NPROP, NSTRE)
|
||||
C
|
||||
C*** CALL THE SUBROUTINE WHICH READS MOST OF THE PROBLEM DATA
|
||||
C
|
||||
CALL INPUT (COORD, IFFIX, LNODS, MATNO, MELEM, MEVAB,
|
||||
MFRON, MMATS, MPOIN, MTOTV, MVFIX, NALGO,
|
||||
NCRIT, NDFRO, NDIME, NDOFN, NELEM, NEVAB,
|
||||
NGAUS, NLAPS, NINCS, NMATS, NNODE, NOFIX,
|
||||
NPOIN, NPROP, NSTRE, NSTR1, NSWIT, NTOTG,
|
||||
NTOTV, NTYPE, NVFIX, POSGP, PRESC, PROPS,
|
||||
WEIGP)
|
||||
C
|
||||
C*** INITIALIZE ARRAYS TO ZERO
|
||||
C
|
||||
CALL ZEROMP (EFFST, ELOAD, EPSTN, MELEM, MEVAB, MTOTG,
|
||||
MTOTV, MVFIX, NDOFN, NELEM, NEVAB, NGAUS,
|
||||
NTOTG, NTOTV, NVFIX, STRSG, TDISP, TFACT,
|
||||
TLOAD, TREAC)
|
||||
C
|
||||
C*** CALL MINDPB (IFDIS, IFFIX, IFRES, LNODS, MELEM, MTOTV,
|
||||
NCDIS, NCRES, NELEM, NTYPE)
|
||||
C
|
||||
C*** COMPUTE LOAD AFTER READING RELEVANT EXTRA DATA
|
||||
C
|
||||
CALL LOADPB (COORD, LNODS, MATNO, MELEM, MMATS, MPOIN,
|
||||
NELEM, NEVAB, NGAUS, NNODE, NPOIN, PROPS,
|
||||
RLOAD)
|
||||
C
|
||||
C*** LOOP OVER EACH INCREMENT
|
||||
C
|
||||
DO 70 IINCS=1, NINCS
|
||||
C
|
||||
C*** READ DATA FOR CURRENT INCREMENT
|
||||
C
|
||||
CALL INCREM (ELOAD, FIXED, IINCS, MELEM, MEVAB, MITER,
|
||||
MTOTV, MVFIX, NDOFN, NELEM, NEVAB, NOUTP,
|
||||
NOFIX, NTOTV, NVFIX, PRESC, RLOAD, TFACT,
|
||||
TLOAD, TOLER)
|
||||
```
|
||||
|
||||
<!-- source-page: 369 -->
|
||||
|
||||
```asm
|
||||
C
|
||||
C*** LOOP OVER EACH ITERATION
|
||||
C
|
||||
DO 90 IITER=1,MITER
|
||||
C
|
||||
C*** CALL ROUTINE WHICH SELECTS SOLUTION ALGORITHM VARIABLE KRESL
|
||||
C
|
||||
CALL ALGOR (FIXED,IINCS,IITER,KRESL,MTOTV,NALGO,
|
||||
NTOTV)
|
||||
C
|
||||
C*** CHECK WHETHER A NEW EVALUATION OF THE STIFFNESS MATRICES IS NEEDED
|
||||
C
|
||||
IF(KRESL.EQ.1)
|
||||
.CALL STIMPA (COORD,EPSTN,IINCS,LNODS,MATNO,MELEM,
|
||||
MEVAB,MMATS,MPOIN,MTOTG,NCRIT,NELEM,
|
||||
NEVAB,NGAUS,NNODE,NLAPS,PROPS,STRSG)
|
||||
C
|
||||
C*** SOLVE EQUATIONS
|
||||
C
|
||||
CALL FRONT (ASDIS,ELOAD,EQRHS,EQUAT,ESTIF,FIXED,
|
||||
IFFIX,IINCS,IITER,GLOAD,GSTIF,KRESL,
|
||||
LNODS,LOCEL,MBUFA,MELEM,MEVAB,MFRON,
|
||||
MSTIF,MTOTV,MVFIX,NACVA,NAMEV,NDEST,
|
||||
NDOFN,NELEM,NEVAB,NNODE,NOFIX,NPIVO,
|
||||
NPOIN,NTOTV,TDISP,TLOAD,TREAC,VECRV)
|
||||
C
|
||||
C*** CALCULATE RESIDUAL FORCES
|
||||
C
|
||||
CALL RESMPA (ASDIS,COORD,EFFST,ELOAD,EPSTN,LNODS,
|
||||
MATNO,MELEM,MMATS,MPOIN,MTOTG,MTOTV,
|
||||
NCRIT,NELEM,NEVAB,NGAUS,NNODE,NLAPS,
|
||||
PROPS,STRSG)
|
||||
C
|
||||
C*** CHECK FOR CONVERGENCE
|
||||
C
|
||||
CALL CONVMP (ASDIS,ELOAD,IITER,IFDIS,IFRES,LNODS,
|
||||
MELEM,MEVAB,MTOTV,NCHEK,NCDIS,NCRES,
|
||||
NDOFN,NELEM,NEVAB,NNODE,NPOIN,NTOTV,
|
||||
REFOR,TOFOR,TDISP,TLOAD,TOLER)
|
||||
C
|
||||
C*** OUTPUT RESULTS IF REQUIRED
|
||||
C
|
||||
IF(IITER.EQ.1.AND.NOUTP(1).GT.0)
|
||||
.CALL OUTMPA (EPSTN,IITER,MTOTG,MTOTV,MVFIX,NELEM,
|
||||
NGAUS,NLAPS,NOFIX,NOUTP,NPOIN,NVFIX,
|
||||
STRSG,TDISP,TREAC)
|
||||
C
|
||||
C*** IF SOLUTION HAS CONVERGED STOP ITERATING AND OUTPUT RESULTS
|
||||
C
|
||||
IF(NCHEK.EQ.0) GO TO 100
|
||||
90 CONTINUE
|
||||
C
|
||||
C*** IF(NALGO.EQ.2) GO TO 100
|
||||
STOP
|
||||
100 CALL OUTMPA (EPSTN,IITER,MTOTG,MTOTV,MVFIX,NELEM,
|
||||
NGAUS,NLAPS,NOFIX,NOUTP,NPOIN,NVFIX,
|
||||
STRSG,TDISP,TREAC)
|
||||
70 CONTINUE
|
||||
20 CONTINUE
|
||||
10 CONTINUE
|
||||
STOP
|
||||
END
|
||||
FEAM 66
|
||||
FEAM 67
|
||||
FEAM 68
|
||||
FEAM 69
|
||||
FEAM 70
|
||||
FEAM 71
|
||||
FEAM 72
|
||||
FEAM 73
|
||||
FEAM 74
|
||||
FEAM 75
|
||||
FEAM 76
|
||||
FEAM 77
|
||||
FEAM 78
|
||||
FEAM 79
|
||||
FEAM 80
|
||||
FEAM 81
|
||||
FEAM 82
|
||||
FEAM 83
|
||||
FEAM 84
|
||||
FEAM 85
|
||||
FEAM 86
|
||||
FEAM 87
|
||||
FEAM 88
|
||||
FEAM 89
|
||||
FEAM 90
|
||||
FEAM 91
|
||||
FEAM 92
|
||||
FEAM 93
|
||||
FEAM 94
|
||||
FEAM 95
|
||||
FEAM 96
|
||||
FEAM 97
|
||||
FEAM 98
|
||||
FEAM 99
|
||||
FEAM 100
|
||||
FEAM 101
|
||||
FEAM 102
|
||||
FEAM 103
|
||||
FEAM 104
|
||||
FEAM 105
|
||||
FEAM 106
|
||||
FEAM 107
|
||||
FEAM 108
|
||||
FEAM 109
|
||||
FEAM 110
|
||||
FEAM 111
|
||||
FEAM 112
|
||||
FEAM 113
|
||||
FEAM 114
|
||||
FEAM 115
|
||||
FEAM 116
|
||||
FEAM 117
|
||||
FEAM 118
|
||||
FEAM 119
|
||||
FEAM 120
|
||||
FEAM 121
|
||||
FEAM 122
|
||||
FEAM 123
|
||||
FEAM 124
|
||||
FEAM 125
|
||||
FEAM 126
|
||||
FEAM 127
|
||||
FEAM 128
|
||||
FEAM 129
|
||||
FEAM 130
|
||||
```
|
||||
|
||||
<!-- source-page: 370 -->
|
||||
|
||||
# 9.6.3 Subroutine CHECK1 (revised)
|
||||
|
||||
In program MINDLAY we remove card CEK1 25 from subroutine CHECK1 because NLAPS (the number of layers) replaces NSTRE in subroutine INPUT. The variable NSTRE is set in subroutine DIMMP (see Section 9.5.4).
|
||||
|
||||
# 9.6.4 Subroutine DEPMPA
|
||||
|
||||
This subroutine sets up the layered discretisation.
|
||||
|
||||
```fortran
|
||||
SUBROUTINE DEPMPA (DEPTH,LPROP,MMATS,NLAYR,PROPS) DEPT 1
|
||||
C**************************DEPT 2
|
||||
C DEPT 3
|
||||
C*** SET UP LAYRED DISCRETIZATION DEPT 4
|
||||
C DEPT 5
|
||||
C**************************DEPT 6
|
||||
DIMENSION PROPS(MMATS,8),DEPTH(26) DEPT 7
|
||||
C DEPT 8
|
||||
C DEPT 9
|
||||
NLAY1=NLAYR+1 DEPT 10
|
||||
ALAYR=NLAYR DEPT 11
|
||||
THICK=PROPS(LPROP,3) DEPT 12
|
||||
CONS1=THICK/ALAYR DEPT 13
|
||||
CONS2=-THICK/2.0 DEPT 14
|
||||
KOUNT=0 DEPT 15
|
||||
DO 10 ILAYR=1,NLAY1 DEPT 16
|
||||
DEPTH(ILAYR)=CONS2+CONS1*KOUNT DEPT 17
|
||||
10 KOUNT=KOUNT+1 DEPT 18
|
||||
RETURN DEPT 19
|
||||
END DEPT 20
|
||||
```
|
||||
|
||||
# 9.6.5 Subroutine LAYMPA
|
||||
|
||||
This subroutine evaluates $\hat{D}_{f}$ and $\hat{D}_{s}$ using the mid-ordinate rule.
|
||||
|
||||
```txt
|
||||
SUBROUTINE LAYMPA (DEPTH,DFLEF,DSHES,EPSTN,IINCS,KGAUS, LAYR 1
|
||||
, LPROP,MMATS,MTOTG,NCRIT,NLAYR,PROPS, LAYR 2
|
||||
, STRSG,JFFLE) LAYR 3
|
||||
C******************************************************************************************
|
||||
C
|
||||
C*** CALCULATES THE D-MATRIX INTEGRATED OVER LAYR 6
|
||||
C*** THE DEPTH LAYR 7
|
||||
C
|
||||
C******************************************************************************************
|
||||
DIMENSION AVECT(3),DEPTH(26),DEVIA(4),DFLEF(3,3), LAYR 10
|
||||
, DPLAN(3,3),DVECT(3), LAYR 11
|
||||
, DSHER(2,2),DSHES(2,2),EPSTN(MTOTG),PROPS(MMATS,8), LAYR 12
|
||||
, SGTOT(5),STRSG(5,MTOTG) LAYR 13
|
||||
C
|
||||
C
|
||||
IF(JFFLE.EQ.0) GO TO 100 LAYR 16
|
||||
HARDS=PROPS(LPROP,7) LAYR 17
|
||||
C
|
||||
C*** ZERO D MATRIX FOR FLEXURE LAYR 19
|
||||
C
|
||||
DO 20 ISTRE=1,3 LAYR 21
|
||||
DO 20 JSTRE=1,3 LAYR 22
|
||||
20 DFLEF(ISTRE,JSTRE)=0.0 LAYR 23
|
||||
C
|
||||
C*** LOOP AROUND LAYERS LAYR 24
|
||||
C
|
||||
```
|
||||
Reference in New Issue
Block a user