Files
MultiPhysicsVault/.raw/FiniteElementsinPlasticityTheoryandPractice/FiniteElementsinPlasticityTheoryandPractice_022.md
T
김경종 bd50e09e36
Tests / Hermetic test suite (push) Has been cancelled
Tests / Skill frontmatter validation (push) Has been cancelled
add documents
2026-06-02 11:38:52 +09:00

28 KiB
Raw Blame History

CCEK137
C*** OTHERWISE ECHO ALL THE REMAINING DATA WITHOUT FURTHER COMMENTCEK138
CCEK139
CALL ECHOCEK140
ENDCEK141

Table 6.2 Errors diagnosed by Subroutine CHECK1.

Error LabelInterpretation
1The specified total number of node points, NPOIN, in the structure is less than or equal to zero.
2The possible maximum total number of node points in the structure is less than the specified total, NPOIN.
3The number of restrained nodal points is less than 2 or greater than NPOIN (for plane problems at least 2 points must be restrained to eliminate rigid body motions).
4The total number of load increments is less than 1.
5The problem type parameter, NTYPE, is not specified as either 1, 2 or 3.
6The number of nodes/element is less than 4 (linear quadrilateral) or greater than 9 (quadratic Lagrangian elements).
7The number of degrees of freedom per node is not equal to 2 (plane) or 3 (plate problems).
8The total number of different materials is less than or equal to zero or greater than the total number of elements in the structure.
9The parameter specifying the yield criterion to be employed is outside the permissible range.
10The number of Gaussian integration points in each direction is not equal to either 2 or 3.
11The parameter specifying the nonlinear solution algorithm to be employed is outside the permissible range.
12The size of the stress matrix is less than 3 (plane) or greater than 5 (plate problems).

6.4.14 Data echo subroutine, ECHO

The function of this subroutine is to list all the remaining data cards after at least one error has been detected by either of the diagnostic subroutines CHECK1 or CHECK2. This is accomplished by means of a simple read and write operation in alphanumeric format.

SUBROUTINE ECHOECHO1
C**********ECHO2
CECHO3
C***IF DATA ERRORS HAVE BEEN DETECTED BY SUBROUTINES CHECK1 ORECHO4
CCHECK2,THIS SUBROUTINE READS AND WRITES THE REMAINING DATA CARDSECHO5
CECHO6
C**********ECHO7
DIMENSION NTITL(80)ECHO8
WRITE(6,900)ECHO9
900FORMAT(//50H NOW FOLLOWS A LISTING OF POST-DISASTER DATA CARDS/)ECHO10
10READ(5,905) NTITLECHO11
905FORMAT(80A1)ECHO12
WRITE(6,910) NTITLECHO13
910FORMAT(20X,80A1)ECHO14
GO TO 10ECHO15
ENDECHO16

6.4.15 Data error diagnostic subroutine, CHECK2

If the problem control parameters have passed the scrutiny of subroutine CHECK1, the geometric data, boundary conditions and material properties are then assimilated by subroutine INPUT. This data is then scrutinised for possible errors in subroutine CHECK2 where error types 13 to 24, listed in Table 6.3, are checked for.

Probably the most useful check in this subroutine is the one which ensures that the maximum frontwidth does not exceed the dimensions specified in subroutine FRONT. Subroutine CHECK2 is described in detail in Chapter 9, Ref. 4.

SUBROUTINE CHECK2(COORD, IFFIX, LNODS, MATNO, MELEM, MFRON, MPOIN, MTOTV, CEK2 1
. MVFIX, NDFRO, NDOFN, NELEM, NMATS, NNODE, NOFIX, NPOIN, CEK2 2
. NVFIX) CEK2 3
C*************** CEK2 4
C CEK2 5
C**** THIS SUBROUTINE CHECKS THE REMAINDER OF THE INPUT DATA CEK2 6
C CEK2 7
C*************** CEK2 8
DIMENSION COORD(MPOIN, 2), IFFIX(MTOTV), LNODS(MELEM, 9), CEK2 9
MATNO(MELEM), NDFRO(MELEM), NEROR(24), NOFIX(MVFIX) CEK2 10
C CEK2 11
C*** CHECK AGAINST TWO IDENTICAL NONZERO NODAL COORDINATES CEK2 12
C CEK2 13
DO 5 IEROR=13,24 CEK2 14
5 NEROR(IEROR)=0 CEK2 15
DO 10 IELEM=1, NELEM CEK2 16
10 NDFRO(IELEM)=0 CEK2 17
DO 50 IPOIN=2, NPOIN CEK2 18
KPOIN=IPOIN-1 CEK2 19
DO 30 JPOIN=1, KPOIN CEK2 20
DO 20 IDIME=1,2 CEK2 21
IF(COORD(IPOIN, IDIME).NE.COORD(JPOIN, IDIME)) GO TO 30 CEK2 22
20 CONTINUE CEK2 23
NEROR(13)=NEROR(13)+1 CEK2 24
30 CONTINUE CEK2 25
40 CONTINUE CEK2 26
C CEK2 27
C*** CHECK THE LIST OF ELEMENT PROPERTY NUMBERS CEK2 28
C CEK2 29
DO 50 IELEM=1, NELEM CEK2 30
50 IF(MATNO(IELEM).LE.0.OR.MATNO(IELEM).GT.NMATS) NEROR(14)=NEROR(14) CEK2 31
. +1 CEK2 32
C CEK2 33
C*** CHECK FOR IMPOSSIBLE NODE NUMBERS CEK2 34
C CEK2 35
DO 70 IELEM=1, NELEM CEK2 36
DO 60 INODE=1, NNODE CEK2 37
IF(LNODS(IELEM, INODE).EQ.0) NEROR(15)=NEROR(15)+1 CEK2 38
60 IF(LNODS(IELEM,INODE).LT.0.OR.LNODS(IELEM,INODE).GT.NPOIN) NEROR( CEK2 39
. 16)=NEROR(16)+1
70 CONTINUE
CEK2 40
CEK2 41
CEK2 42
CEK2 43
CEK2 44
DO 140 IPOIN=1,NPOIN
CEK2 45
KSTAR=0
CEK2 46
DO 100 IELEM=1,NELEM
CEK2 47
KZERO=0
CEK2 48
DO 90 INODE=1,NNODE
CEK2 49
IF(LNODS(IELEM,INODE).NE.IPOIN) GO TO 90
CEK2 50
KZERO=KZERO+1
CEK2 51
IF(KZERO.GT.1) NEROR(17)=NEROR(17)+1
CEK2 52
CEK2 53
C*** SEEK FIRST,LAST AND INTERMEDIATE APPEARANCES OF NODE IPOIN
CEK2 54
C
IF(KSTAR.NE.0) GO TO 80
CEK2 55
KSTAR=IELEM
CEK2 56
CEK2 57
CEK2 58
C*** CALCULATE INCREASE OR DECREASE IN FRONTWIDTH AT EACH ELEMENT STAGE
CEK2 59
C
NDFRO(IELEM)=NDFRO(IELEM)+NDOFN
CEK2 60
80 CONTINUE
CEK2 61
CEK2 62
C
C*** AND CHANGE THE SIGN OF THE LAST APPEARANCE OF EACH NODE
CEK2 63
CEK2 64
CEK2 65
KLAST=IELEM
CEK2 66
NLAST=INODE
CEK2 67
90 CONTINUE
CEK2 68
100 CONTINUE
CEK2 69
IF(KSTAR.EQ.0) GO TO 110
CEK2 70
IF(KLAST.LT.NELEM) NDFRO(KLAST+1)=NDFRO(KLAST+1)-NDOFN
CEK2 71
LNODS(KLAST,NLAST)=-IPOIN
CEK2 72
GO TO 140
CEK2 73
CEK2 74
C*** CHECK THAT COORDINATES FOR AN UNUSED NODE HAVE NOT BEEN SPECIFIED
CEK2 75
CEK2 76
110 WRITE(6,900) IPOIN
CEK2 77
900 FORMAT(/15H CHECK WHY NODE,I4,14H NEVER APPEARS)
CEK2 78
NEROR(18)=NEROR(18)+1
CEK2 79
SIGMA=0.0
CEK2 80
DO 120 IDIME=1,2
CEK2 81
120 SIGMA=SIGMA+ABS(COORD(IPOIN,IDIME))
CEK2 82
IF(SIGMA.NE.0.0) NEROR(19)=NEROR(19)+1
CEK2 83
CEK2 84
C*** CHECK THAT AN UNUSED NODE NUMBER IS NOT A RESTRAINED NODE
CEK2 85
CEK2 86
DO 130 IVFIX=1,NVFIX
CEK2 87
130 IF(NOFIX(IVFIX).EQ.IPOIN) NEROR(20)=NEROR(20)+1
CEK2 88
140 CONTINUE
CEK2 89
CEK2 90
C*** CALCULATE THE LARGEST FRONTWIDTH
CEK2 91
CEK2 92
NFRON=0
CEK2 93
KFRON=0
CEK2 94
DO 150 IELEM=1,NELEM
CEK2 95
NFRON=NFRON+NDFRO(IELEM)
CEK2 96
150 IF(NFRON.GT.KFRON) KFRON=NFRON
CEK2 97
WRITE(6,905) KFRON
CEK2 98
905 FORMAT(/33H MAXIMUM FRONTWIDTH ENCOUNTERED =,I5)
CEK2 99
IF(KFRON.GT.MFRON) NEROR(21)=1
CEK2 100
CEK2 101
C*** CONTINUE CHECKING THE DATA FOR THE FIXED VALUES
CEK2 102
CEK2 103 
DO 170 IVFIX=1,NVFIXCEK2 104
IF(NOFIX(IVFIX).LE.O.OR.NOFIX(IVFIX).GT.NPOIN) NEROR(22)=NEROR(22)CEK2 105
. +1CEK2 106
KOUNT=0CEK2 107
NLOCA=NOFIX(IVFIX)-1)*NDOFNCEK2 108
DO 160 IDOFN=1,NDOFNCEK2 109
NLOCA=NLOCA+1CEK2 110
160 IF(IFFIX(NLOCA).GT.0) KOUNT=1CEK2 111
IF(KOUNT.EQ.0) NEROR(23)=NEROR(23)+1CEK2 112
KVFIX=IVFIX-1CEK2 113
DO 170 JVFIX=1,KVFIXCEK2 114
170 IF(IVFIX.NE.1.AND.NOFIX(IVFIX).EQ.NOFIX(JVFIX)) NEROR(24)=NEROR(24CEK2 115
. )+1CEK2 116
KEROR=0CEK2 117
DO 180 IEROR=13,24CEK2 118
IF(NEROR(IEROR).EQ.0) GO TO 180CEK2 119
KEROR=1CEK2 120
WRITE(6,910) IEROR,NEROR(IEROR)CEK2 121
910 FORMAT(//31H *** DIAGNOSIS BY CHECK2, ERROR,I3,6X,18H ASSOCIATED NCEK2122
.UMBER,I5)CEK2 123
180 CONTINUECEK2 124
IF(KEROR.NE.0) GO TO 200CEK2 125
CCEK2 126
C*** RETURN ALL NODAL CONNECTION NUMBERS TO POSITIVE VALUESCEK2 127
CCEK2 128
DO 190 IELEM=1,NELEMCEK2 129
DO 190 INODE=1,NNODECEK2 130
190 LNODS(IELEM,INODE)=IABS(LNODS(IELEM,INODE))CEK2 131
RETURNCEK2 132
200 CALL ECHOCEK2 133
ENDCEK2 134

Table 6.3 Errors diagnosed by Subroutine CHECK2

Error LabelInterpretation
13A total of x identical nodal coordinates have been detected, i.e. x nodal points have coordinates which are identical to those of one or more of the remaining nodes.
14A total of x element material identification numbers are less than or equal to zero or greater than the total number of elements in the structure.
15A total of x nodal connection numbers have a zero value.
16A total of x nodal connection numbers are negative or greater than the specified maximum value, NPOIN.
17A total of x repetitions of node numbers within individual elements have been detected.
18A total of x nodes exist in the list of nodal points which do not appear anywhere in the list of element nodal connection numbers.
19Non-zero coordinates have been specified for a total of x nodes which do not appear in the list of element nodal connection numbers.
20A total of x node numbers which do not appear in the element nodal connections list have been specified as restrained nodal points.
21The largest frontwidth encountered in the problem has exceeded the maximum value specified in subroutine FRONT of the program.

22 A total of x restrained nodal points have numbers less than or equal to zero or greater than the specified maximum value, NPOIN.

23 A total of x restrained nodal points at which the fixity code is less than or equal to zero have been detected.

24 A total of x repetitions in the list of restrained nodal points have been detected.

6.5 Standard subroutines for elasto-plastic finite element analysis

In this section we describe four additional subroutines which are common to all the elasto-plastic and elasto-viscoplastic applications presented in Chapters 7, 8 and 9. For each subroutine presented, the form of the argument list and common block structure will be that required for two-dimensional elasto-plastic applications.

6.5.1 Data input subroutine, INPUT

The role of this subroutine is to accept most of the input data required for analysis of elasto-plastic problems. The structure of this subroutine follows closely that of subroutine DATA described in Section 3.2. Subroutine INPUT also closely resembles the data input subroutine presented in Chapter 3, Ref. 4 for linear elastic problems.

The control parameters necessary for two-dimensional applications extend beyond those required for one-dimensional analysis and are presented below.

NPOIN Total number of nodal points in the structure.

NELEM Total number of elements in the structure.

NVFIX Total number of boundary points, i.e. nodal points at which one or more degrees of freedom are restrained.

NTYPE Problem type parameter:

1—Plane stress,

2—Plain strain,

3—Axial symmetry.

NNODE Number of nodes per element:

4—Linear isoparametric quadrilateral element,

8—Quadratic isoparametric Serendipity element,

9—Quadratic isoparametric Langrangian element.

NMATS Total number of different materials in the structure.

NGAUS The order of Gaussian quadrature rule to be employed for numerical integration of the element stiffness matrices, etc., as described in Section 6.3.2. If NGAUS is prescribed as 2 a two-point Gauss rule is to be employed; if NGAUS is input as 3 a three-point rule will be used.

NALGO Parameter controlling nonlinear solution algorithm:

1—Initial stiffness method. The element stiffnesses are computed at the beginning of the analysis and remain unchanged thereafter.
2—Tangential stiffness method. The element stiffnesses are recomputed during each iteration of each load increment.
3—Combined algorithm. The element stiffnesses are recomputed for the first iteration of each load increment only.
4—Combined algorithm. The element stiffnesses are recomputed for the second iteration of each load increment only. (Of course for the first load increment, the element stiffnesses must be calculated for the first iteration also.)

NCRIT The yield criterion to be employed:

1—Tresca,
2—Von Mises,
3—Mohr-Coulomb,
4—Drucker-Prager.

NINCS The total number of increments in which the final loading is to be applied.

NSTRE The number of independent stress components for the application:

3—Plane stress/strain,
4—Axial symmetry.

For the present two-dimensional applications two coordinate components are required to locate each nodal point. With reference to Figs. 6.26.4 the x, y components must be specified for plane stress or plane strain problems and the r, z components for axisymmetric situations. This information is stored in the array

COORD (IPOIN, IDIME)

where IPOIN corresponds to the number of the nodal point and IDIME refers to the coordinate component. As mentioned in Section 6.4.1 nodal coordinates need not be supplied for mid-side nodes of 8- and 9-noded elements if they lie on a straight line between corner nodes. The coordinates of such intermediate nodes are evaluated by subroutine NODEXY by linear interpolation.

For each nodal point at which the displacement value corresponding to one or more degrees of freedom are prescribed, input data must be supplied specifying these fixity conditions. The nodes at which one or more degrees of freedom are restrained are stored in array

NOFIX (IVFIX)

which signifies that the IVFIX ^{th} boundary node has a nodal point number NOFIX (IVFIX). Input parameter IFPRE controls which degrees of freedom of a particular node are to have a specified displacement value. For

example, for plane or axisymmetric problems, integer code IFPRE may have the following values:

10 Displacement in the x(r) direction specified,
01 Displacement in the y(z) direction specified,
11 Displacements in both x(r) and y(z) directions specified.

This information is then transferred, for permanent storage, into array IFFIX (ITOTV)

where ITOTV ranges over the total number of degrees of freedom of the structure. The prescribed displacement value associated with a restrained degree of freedom is stored in array

PRESC (IVFIX, IDOFN)

where IVFIX indicates that the prescribed displacements pertain to the IVFIX ^{th} boundary node and IDOFN ranges over the degrees of freedom of that node.

The list of material properties for two-dimensional applications differs from the corresponding one-dimensional case considered in Section 3.2. In particular for plane and axisymmetric elasto-plastic problems the following material parameters must be input.

PROPS (NUMAT, 1) Elastic modulus, E .
PROPS (NUMAT, 2) Poisson's ratio, \nu .
PROPS (NUMAT, 3) Material thickness, t (applicable to plane problems only).
PROPS (NUMAT, 4) Material mass density, \rho .
PROPS (NUMAT, 5) Uniaxial yield stress, \sigma_{Y} (Tresca and Von Mises solids); Cohesion c (MohrCoulomb and DruckerPrager materials).
PROPS (NUMAT, 6) Hardening parameter H' for linear strain hardening.
PROPS (NUMAT, 7) Angle of internal friction for Mohr-Coulomb and Drucker-Prager materials only.

Consequently NPROP = 7 for two-dimensional elasto-plastic applications. The corresponding material data for plate bending problems is listed in Chapter 9.

Subroutine INPUT also calls subroutine GAUSSQ, described in Section 6.4.2, whose function is to generate the sampling point position and weighting factors for numerical integration of the element stiffness matrices, etc., by Gaussian quadrature. The order of integration rule to be employed has been specified, through NGAUS, in the control data.

Subroutine INPUT is now presented and is self-explanatory.

SUBROUTINE INPUT(COORD, IFFIX, LNODS, MATNO, MELEM, MEVAB, MFRON, MMATS, INPT 1
. MPOIN, MTOTV, MVFIX, NALGO, INPT 2
. NCRIT, NDFRO, NDOFN, NELEM, INPT 3
. NEVAB, NGAUS, NGAU2, INPT 4
. NINCS, NMATS, NNODE, NOFIX, NPOIN, NPROP, NSTRE, NSTR1, INPT 5
. NTOTG, NTOTV, NTYPE, NVFIX, POSGP, PRESC, PROPS, WEIGP) INPT 6
C*****
C
C*** THIS SUBROUTINE ACCEPTS MOST OF THE INPUT DATA INPT 7
C
C*****
DIMENSION COORD(MPOIN, 2), IFFIX(MTOTV), LNODS(MELEM, 9), INPT 10
. MATNO(MELEM), NDFRO(MELEM), 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1 
6 READ(5,905) IPOIN,(COORD(IPOIN,IDIME),IDIME=1,2) INPT 65
905 FORMAT(I5,6F10.5) INPT 66
IF(IPOIN.NE.NPOIN) GO TO 6 INPT 67
C INPT 68
C*** INTERPOLATE COORDINATES OF MID-SIDE NODES INPT 69
C CALL NODEXY(COORD,LNODS,MELEM,MPOIN,NELEM,NNODE) INPT 71
DO 10 IPOIN=1,NPOIN INPT 72
10 WRITE(6,906) IPOIN,(COORD(IPOIN,IDIME),IDIME=1,2) INPT 73
906 FORMAT(1X,I5,3F10.3) INPT 74
C INPT 75
C*** READ THE FIXED VALUES. INPT 76
C INPT 77
WRITE(6,907) INPT 78
907 FORMAT(//5H NODE,6X,4HCODE,6X,12HFIXED VALUES) INPT 79
DO 8 IVFIX=1,NVFIX INPT 80
READ(5,908) NOFIX(IVFIX),IFPRE,(PRESC(IVFIX,IDOFN),IDOFN=1,NDOFN) INPT 81
WRITE(6,908) NOFIX(IVFIX),IFPRE,(PRESC(IVFIX,IDOFN),IDOFN=1,NDOFN) INPT 82
NLOCA=(NOFIX(IVFIX)-1)*NDOFN INPT 83
IFDOF=10**(NDOFN-1) INPT 84
DO 8 IDOFN=1,NDOFN INPT 85
NGASH=NLOCA+IDOFN INPT 86
IF(IFPRE.LT.IFDOF) GO TO 8 INPT 87
IFFIX(NGASH)=1 INPT 88
IFPRE=IFPRE-IFDOF INPT 89
8 IFDOF=IFDOF/10 INPT 90
908 FORMAT(1X,I4,5X,I5,5X,5F10.6) INPT 91
C INPT 92
C*** READ THE AVAILABLE SELECTION OF ELEMENT PROPERTIES. INPT 93
C INPT 94
16 WRITE(6,910) INPT 95
910 FORMAT(//7H NUMBER,6X,18HELEMENT PROPERTIES) INPT 96
DO 18 IMATS=1,NMATS INPT 97
READ(5,900) NUMAT INPT 98
READ(5,930) (PROPS(NUMAT,IPROP),IPROP=1,NPROP) INPT 99
930 FORMAT(8F10.5) INPT 100
18 WRITE(6,911) NUMAT,(PROPS(NUMAT,IPROP),IPROP=1,NPROP) INPT 101
911 FORMAT(1X,I4,3X,8E14.6) INPT 102
C INPT 103
C*** SET UP GAUSSIAN INTEGRATION CONSTANTS INPT 104
C INPT 105
CALL GAUSSQ(NGAUS,POSGP,WEIGP) INPT 106
CALL CHECK2(COORD,IFFIX,LNODS,MATNO,MELEM,MFRON,MPOIN,MTOTV,INPT 107
. MVFIX,NDFRO,NDOFN,NELEM,NMATS,NNODE,NOFIX,NPOIN,INPT 108
. NVFIX) INPT 109
RETURN INPT 110
END INPT 111 

6.5.2 Subroutine ALGOR

The function of this subroutine is to control the solution process according to the value of the solution algorithm parameter, NALGO, input in subroutine INPUT. This subroutine is similar in form to subroutine NONAL presented in Section 3.3 for one-dimensional applications. The subroutine sets the value of indicator KRESL to either 1 or 2 according to NALGO and the current values of the iteration number IITER and increment number IINCS. A value of KRESL = 1 indicates reformulation of the element stiffnesses accompanied by a full equation solution and KRESL = 2 indicates that the element stiffnesses are not to be modified and consequently only equation resolution takes place.

With the definitions of the permissible values of NALGO given in Section 6.5.1, subroutine ALGOR is self-explanatory and is listed below.*

SUBROUTINE ALGOR(FIXED,IINCS,IITER,KRESL, MTOTV,NALGO,NTOTV) ALGR 1 C***** THIS SUBROUTINE SETS EQUATION RESOLUTION INDEX,KRESL ALGR 3 C ALGR 4 C***** THIS SUBROUTINE SETS EQUATION RESOLUTION INDEX,KRESL ALGR 5 C ALGR 6 C***** DIMENSION FIXED(MTOTV) ALGR 7 KRESL=2 ALGR 8 IF(NALGO.EQ.1.AND.IINCS.EQ.1.AND.IITER.EQ.1) KRESL=1 ALGR 10 IF(NALGO.EQ.2) KRESL=1 ALGR 11 IF(NALGO.EQ.3.AND.IITER.EQ.1) KRESL=1 ALGR 12 IF(NALGO.EQ.4.AND.IINCS.EQ.1.AND.IITER.EQ.1) KRESL=1 ALGR 13 IF(NALGO.EQ.4.AND.IITER.EQ.2) KRESL=1 ALGR 14 IF(IITER.EQ.1) RETURN ALGR 15 DO 100 ITOTV = 1,NTOTV ALGR 16 FIXED(ITOTV)=0.0 ALGR 17 100 CONTINUE ALGR 18 RETURN ALGR 19 END ALGR 20

6.5.3 Subroutine INCREM

The role of subroutine INCREM is to increment the applied loading or any prescribed displacements according to the load factors specified as input. This subroutine is accessed on the first iteration of each load increment. For each increment of load the following items of information are input as data and are similar to those described in Section 3.7.

FACTO This controls the magnitude of the load increment. The applied loading for each element is evaluated in Subroutine LOADPS for plane and axisymmetric situations, or Subroutine LOADPB for plate problems, and is stored in the array RLOAD (IELEM, IEVAB) as described in Section 6.4.5. The additional element load applied during the increment is RLOAD (IELEM, IEVAB)*FACTO. The applied loading is accumulative so that if FACTO is input as 0·8, 0·2 and 0·1 for the first three increments, the total load acting on the structure during the third load increment is 1·1 times the loads calculated in Subroutine LOADPS. This method of load factoring permits unequal load increments to be taken. If loading is by prescribed displacements the same factoring process holds.

TOLER This controls the tolerance permitted on the convergence process and its use has been described in Section 3.9.3.

MITER Maximum permissible number of iterations. This is a safety measure to cover situations where the solution process does

* For elasto-viscoplastic applications described in Chapter 8, iteration number IITER is replaced by timestep number, ISTEP.