17 KiB
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
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
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.
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
| C*** EVALUATE SHEAR STRESS RESULTANTS60 IF(IFSHE.EQ.0) RETURN | STRP | 27 |
| STRP | 28 | |
| ESHXX=DGRAD(1)-XZROT | STRP | 29 |
| ESHYY=DGRAD(4)-YZROT | STRP | 30 |
| STRES(4)=DSHER(1,1)*ESHXX | STRP | 31 |
| STRES(5)=DSHER(2,2)*ESHYY | STRP | 32 |
| RETURN | STRP | 33 |
| END | STRP | 34 |
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.
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.
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
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.
flowchart
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"]
Fig. 9.5 Overall program structure of program MINDLAY.
flowchart
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"]
Fig. 9.5 Overall program structure of program MINDLAY (continued).
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)
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
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.
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.
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

