Skip to content

Commit 6566bd6

Browse files
authored
Merge pull request #139 from victorkemp/composite_buckling
Composite buckling
2 parents 7320547 + 646c555 commit 6566bd6

9 files changed

Lines changed: 108 additions & 35 deletions

File tree

Source/EMG/EMG1/EMG.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ SUBROUTINE EMG ( INT_ELEM_ID, OPT, WRITE_WARN, CALLING_SUBR, WRT_BUG_THIS_TIME )
9797
! **********************************************************************************************************************************
9898
NUM_EMG_FATAL_ERRS = 0
9999

100+
100101
CALL EMG_INIT
101102

102103
! **********************************************************************************************************************************
@@ -343,7 +344,7 @@ SUBROUTINE EMG ( INT_ELEM_ID, OPT, WRITE_WARN, CALLING_SUBR, WRT_BUG_THIS_TIME )
343344
IF (NUM_EMG_FATAL_ERRS > 0) CALL EMG_QUIT
344345

345346
ELSE IF ((TYPE(1:5) == 'QUAD4') .OR. (TYPE == 'SHEAR ')) THEN
346-
CALL QDEL1 ( OPT, WRITE_WARN )
347+
CALL QDEL1 ( OPT, INT_ELEM_ID, WRITE_WARN )
347348
IF (NUM_EMG_FATAL_ERRS > 0) CALL EMG_QUIT
348349

349350
ELSE IF ((TYPE == 'HEXA8 ') .OR. (TYPE == 'HEXA20 ') .OR. &

Source/EMG/EMG4/QDEL1.f90

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
! End MIT license text.
2626

27-
SUBROUTINE QDEL1 ( OPT, WRITE_WARN )
27+
SUBROUTINE QDEL1 ( OPT, INT_ELEM_ID, WRITE_WARN )
2828

2929
! Calculates, or calls subr's to calculate, quadrilateral element matrices:
3030

@@ -54,6 +54,7 @@ SUBROUTINE QDEL1 ( OPT, WRITE_WARN )
5454

5555
CHARACTER(LEN=LEN(BLNK_SUB_NAM)):: SUBR_NAME = 'QDEL1'
5656
CHARACTER(1*BYTE), INTENT(IN) :: OPT(6) ! 'Y'/'N' flags for whether to calc certain elem matrices
57+
INTEGER(LONG), INTENT(IN) :: INT_ELEM_ID ! Internal element ID
5758
CHARACTER(LEN=*), INTENT(IN) :: WRITE_WARN ! If 'Y" write warning messages, otherwise do not
5859
CHARACTER( 1*BYTE) :: RED_INT_SHEAR ! If 'Y', use Gaussian weighted average of B matrices for shear terms
5960

@@ -219,7 +220,7 @@ SUBROUTINE QDEL1 ( OPT, WRITE_WARN )
219220
ELSE
220221
RED_INT_SHEAR = 'N'
221222
ENDIF
222-
CALL QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
223+
CALL QMEM1 ( OPT, INT_ELEM_ID, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
223224
ENDIF
224225
ENDIF
225226

Source/EMG/EMG4/QMEM1.f90

Lines changed: 78 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
! End MIT license text.
2626

27-
SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
27+
SUBROUTINE QMEM1 ( OPT, INT_ELEM_ID, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
2828

2929
! Isoparametric membrane quadrilateral. Default iorq1s = 1 gives reduced integration for shear terms. User can override
3030
! this with Bulk Data PARAM iorq1s 2. Element can be nonplanar. HBAR is the dist that the nodes are away from the mean
@@ -42,14 +42,16 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
4242

4343
USE PENTIUM_II_KIND, ONLY : BYTE, LONG, DOUBLE
4444
USE IOUNT1, ONLY : ERR, F04, F06, WRT_ERR, WRT_LOG
45-
USE SCONTR, ONLY : BLNK_SUB_NAM, FATAL_ERR, MAX_ORDER_GAUSS, MAX_STRESS_POINTS, MEFE, NSUB, NTSUB
45+
USE SCONTR, ONLY : BLNK_SUB_NAM, FATAL_ERR, MAX_ORDER_GAUSS, MAX_STRESS_POINTS, MEFE, NSUB, NTSUB, &
46+
MRPCOMP_PLIES, MRPCOMP0
4647
USE TIMDAT, ONLY : TSEC
4748
USE SUBR_BEGEND_LEVELS, ONLY : QMEM1_BEGEND
4849
USE CONSTANTS_1, ONLY : ZERO, FOUR
4950
USE NONLINEAR_PARAMS, ONLY : LOAD_ISTEP
5051
USE MODEL_STUF, ONLY : ALPVEC, BE1, BMEANT, DT, EID, ELDOF, ELGP, EM, ERR_SUB_NAM, HBAR, KE, KED, MXWARP, &
51-
NUM_EMG_FATAL_ERRS, PCOMP_LAM, PCOMP_PROPS, PPE, PRESS, PTE, &
52-
SE1, STE1, SHELL_AALP, SHELL_A, TREF, TYPE, FCONV, STRESS
52+
NUM_EMG_FATAL_ERRS, PCOMP_LAM, PCOMP_PROPS, RPCOMP, PPE, PRESS, PTE, &
53+
SE1, STE1, SHELL_AALP, SHELL_A, TREF, TYPE, FCONV, STRESS, NUM_PLIES, INTL_PID, TPLY, &
54+
EPROP, PLY_NUM
5355
USE DEBUG_PARAMETERS, ONLY : DEBUG
5456

5557
USE QMEM1_USE_IFs
@@ -61,9 +63,11 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
6163
CHARACTER( 1*BYTE), INTENT(IN) :: RED_INT_SHEAR ! If 'Y', use Gaussian weighted average of B matrices for shear terms
6264
CHARACTER(46*BYTE) :: IORD_MSG ! Character name of the integration order (used for debug output)
6365

66+
INTEGER(LONG), INTENT(IN) :: INT_ELEM_ID ! Internal element ID
6467
INTEGER(LONG), INTENT(IN) :: IORD ! Gaussian integration order for element
6568
INTEGER(LONG) :: GAUSS_PT ! Gauss point number (used for output in subr SHP2DQ
6669
INTEGER(LONG) :: I,J,K,L,M ! DO loop indices
70+
INTEGER(LONG) :: JPLY ! PLY_NUM in a DO loop
6771
INTEGER(LONG), PARAMETER :: ID1( 8) = (/ 1, & ! ID1(1) = 1 means virgin 8X8 elem DOF 1 is MYSTRAN 24X24 elem DOF 1
6872
2, & ! ID1(2) = 2 means virgin 8X8 elem DOF 2 is MYSTRAN 24X24 elem DOF 2
6973
7, & ! ID1(3) = 7 means virgin 8X8 elem DOF 3 is MYSTRAN 24X24 elem DOF 7
@@ -95,7 +99,8 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
9599
INTEGER(LONG), PARAMETER :: NUM_NODES = 4 ! Quad has 4 nodes
96100
! Indicator of no output of elem data to BUG file
97101
INTEGER(LONG), PARAMETER :: SUBR_BEGEND = QMEM1_BEGEND
98-
102+
INTEGER(LONG) :: PLY_RPCOMP_INDEX ! Index in array RPCOMP where data for ply K begins
103+
99104
REAL(DOUBLE) , INTENT(IN) :: AREA ! Element area
100105
REAL(DOUBLE) , INTENT(IN) :: XSD(4) ! Diffs in x coords of quad sides in local coords
101106
REAL(DOUBLE) , INTENT(IN) :: YSD(4) ! Diffs in y coords of quad sides in local coords
@@ -138,16 +143,16 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
138143
REAL(DOUBLE) :: NBAR(2,8) ! Matrix of shape functions (used in PPE calc)
139144
REAL(DOUBLE) :: PQ(8,NSUB) ! Element pressure load matrix for the 8 local emenent DOF's.
140145
REAL(DOUBLE) :: PSH(4) ! Output from subr SHP2DQ, called herein.
141-
REAL(DOUBLE) :: FORCEx ! Engineering force in the elem x direction
142-
REAL(DOUBLE) :: FORCEy ! Engineering force in the elem x direction
143-
REAL(DOUBLE) :: FORCExy ! Engineering force in the elem xy direction
146+
REAL(DOUBLE) :: FORCEx(IORD_STRESS_Q4*IORD_STRESS_Q4) ! Engineering force in the elem x direction at Gauss points
147+
REAL(DOUBLE) :: FORCEy(IORD_STRESS_Q4*IORD_STRESS_Q4) ! Engineering force in the elem x direction at Gauss points
148+
REAL(DOUBLE) :: FORCExy(IORD_STRESS_Q4*IORD_STRESS_Q4)! Engineering force in the elem xy direction at Gauss points
144149
REAL(DOUBLE) :: QLOAD(2,NSUB) ! 2 components of the element pressure load (from PRESS) in 1 array
145150
REAL(DOUBLE) :: SSS(MAX_ORDER_GAUSS)
146151
! An output from subr ORDER, called herein. Gauss abscissa's.
147152
REAL(DOUBLE) :: SUMB ! An intermediate variable used in calc B matrix for reduced integration
148153
REAL(DOUBLE) :: SUMD ! An intermediate variable used in calc B matrix for reduced integration
149154
REAL(DOUBLE) :: TBAR ! Average elem temperature
150-
155+
151156
! **********************************************************************************************************************************
152157
IF (WRT_LOG >= SUBR_BEGEND) THEN
153158
CALL OURTIM
@@ -525,6 +530,65 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
525530

526531
IF ((OPT(6) == 'Y') .AND. (LOAD_ISTEP > 1)) THEN
527532

533+
! Things not tested or properly coded for differential stiffness matrix yet:
534+
! - Non-symmetric composite
535+
! - Offset
536+
! - Non-planar element
537+
! - Thermal loading with composite
538+
! - Differential stiffness solution type
539+
540+
! Find membrane engineering forces at each Gauss point
541+
! by summing the forces in each ply.
542+
DO GAUSS_PT=1,IORD_STRESS_Q4*IORD_STRESS_Q4
543+
FORCEx(GAUSS_PT) = 0
544+
FORCEy(GAUSS_PT) = 0
545+
FORCExy(GAUSS_PT) = 0
546+
ENDDO
547+
548+
CALL GET_ELEM_NUM_PLIES ( INT_ELEM_ID ) ! Get NUM_PLIES
549+
550+
DO JPLY=1,NUM_PLIES
551+
! Get UEL, EM, TPLY for this ply.
552+
IF (PCOMP_PROPS == 'N') THEN
553+
! EM is already set above.
554+
555+
TPLY = EPROP(1) ! Element thickness
556+
CALL ELMDIS
557+
558+
ELSE
559+
560+
561+
IF (PCOMP_LAM == 'NON') THEN ! Delete this IF block to allow the LAM field set to nonsymmetric.
562+
FATAL_ERR = FATAL_ERR + 1
563+
NUM_EMG_FATAL_ERRS = NUM_EMG_FATAL_ERRS + 1
564+
WRITE(ERR,*) ' *ERROR: Code not written for non-symmetric composite buckling or differential stiffness.'
565+
WRITE(F06,*) ' *ERROR: Code not written for non-symmetric composite buckling or differential stiffness.'
566+
CALL OUTA_HERE ( 'Y' )
567+
ENDIF
568+
569+
PLY_NUM = JPLY ! Used by SHELL_ABD_MATRICES
570+
CALL SHELL_ABD_MATRICES ( INT_ELEM_ID, 'N' ) ! Get EM, ZPLY, TPLY, ALPVEC for this ply
571+
CALL ELMDIS
572+
CALL ELMDIS_PLY ! Adjust UEL using ZPLY
573+
574+
ENDIF
575+
576+
GAUSS_PT = 0
577+
DO I=1,IORD_STRESS_Q4
578+
DO J=1,IORD_STRESS_Q4
579+
GAUSS_PT = GAUSS_PT + 1
580+
581+
CALL ELEM_STRE_STRN_ARRAYS ( GAUSS_PT+1 ) ! Stress at this Gauss point using UEL, BE1, EM, ALPVEC, DT
582+
583+
FORCEx(GAUSS_PT) = FORCEx(GAUSS_PT) + TPLY*STRESS(1)
584+
FORCEy(GAUSS_PT) = FORCEy(GAUSS_PT) + TPLY*STRESS(2)
585+
FORCExy(GAUSS_PT) = FORCExy(GAUSS_PT) + TPLY*STRESS(3)
586+
ENDDO
587+
ENDDO
588+
589+
ENDDO
590+
591+
528592
! Accoring to:
529593
! Robert D. Cook, David S. Malkus, Michael E. Plesha Concepts and Applications of Finite Element Analysis, 3rd Edition 1989
530594
! Section 14.3 Stress Stiffness Matrix Of A Plate Element
@@ -547,28 +611,21 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
547611
! [ σ] = ⌡ ⌡ DPSHX [ Nxy Ny ] DPSHX |J| dξ dη
548612
! -1 -1
549613

550-
CALL ELMDIS
551-
552-
CALL ORDER_GAUSS ( IORD_STRESS_Q4, SSS, HHH )
553-
554614
DO K=1,ELGP
555615
DO L=1,ELGP
556616
KS(K,L) = ZERO
557617
ENDDO
558618
ENDDO
559619

620+
CALL ORDER_GAUSS ( IORD_STRESS_Q4, SSS, HHH )
621+
560622
GAUSS_PT = 0
561623
DO I=1,IORD_STRESS_Q4
562624
DO J=1,IORD_STRESS_Q4
563625
GAUSS_PT = GAUSS_PT + 1
564626

565-
CALL ELEM_STRE_STRN_ARRAYS (GAUSS_PT+1) ! Stress at this Gauss point
566-
567-
FORCEx = FCONV(1)*STRESS(1) ! Engineering forces at this Gauss point
568-
FORCEy = FCONV(1)*STRESS(2)
569-
FORCExy = FCONV(1)*STRESS(3)
570-
DUM11(1,1) = FORCEx ; DUM11(1,2) = FORCExy
571-
DUM11(2,1) = FORCExy ; DUM11(2,2) = FORCEy
627+
DUM11(1,1) = FORCEx(GAUSS_PT) ; DUM11(1,2) = FORCExy(GAUSS_PT)
628+
DUM11(2,1) = FORCExy(GAUSS_PT) ; DUM11(2,2) = FORCEy(GAUSS_PT)
572629

573630
DO L=1,ELGP ! Shape function derivatives at this Gauss point.
574631
DPSHX(1,L) = BE1(1,ID1(2*(L-1)+1),GAUSS_PT+1)
@@ -589,6 +646,7 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
589646

590647
ENDDO
591648
ENDDO
649+
592650
! Copy KS into KED for each translational DOF.
593651
DO I=1,6*ELGP
594652
DO J=1,6*ELGP
@@ -603,7 +661,6 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
603661
ENDDO
604662
ENDDO
605663

606-
607664
ENDIF
608665

609666
! **********************************************************************************************************************************

Source/EMG/EMG4/QPLT2.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ SUBROUTINE QPLT2 ( OPT, AREA, XSD, YSD, BIG_BB )
265265

266266
GAUSS_PT = 0
267267
IORD_MSG = 'for plate bending strains, IORQ2B = '
268+
268269
DO I=1,IORQ2B
269270
DO J=1,IORQ2B
270271
SSI = SSS(I)
@@ -307,7 +308,6 @@ SUBROUTINE QPLT2 ( OPT, AREA, XSD, YSD, BIG_BB )
307308
ENDDO
308309

309310
IF (IORQ2T > 0) THEN
310-
311311
GAUSS_PT = 0
312312
IORD_MSG = 'for transverse shear strains, IORQ2T = '
313313
DO I=1,IORDXX
@@ -564,7 +564,7 @@ SUBROUTINE QPLT2 ( OPT, AREA, XSD, YSD, BIG_BB )
564564
ENDDO
565565

566566
IF ((PCOMP_PROPS == 'Y') .AND. (PCOMP_LAM == 'NON')) THEN
567-
567+
CALL ORDER_GAUSS ( IORQ2B, SSS, HHH )
568568
GAUSS_PT = 0
569569
IORD_MSG = 'for plate bending strains, IORQ2B = '
570570
DO I=1,IORQ2B

Source/EMG/EMG4/TMEM1.f90

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,15 @@ SUBROUTINE TMEM1 ( OPT, AREA, X2E, X3E, Y3E, WRT_BUG_THIS_TIME, BIG_BM )
3737
! 5) KED = element differen stiff matrix calc , if OPT(6) = 'Y' = 'Y'
3838

3939
USE PENTIUM_II_KIND, ONLY : BYTE, LONG, DOUBLE
40-
USE IOUNT1, ONLY : BUG, F04, WRT_BUG, WRT_LOG, F06
41-
USE SCONTR, ONLY : BLNK_SUB_NAM, ELDT_BUG_BCHK_BIT, ELDT_BUG_BMAT_BIT, NSUB, NTSUB
40+
USE IOUNT1, ONLY : ERR, BUG, F04, WRT_BUG, WRT_LOG, F06
41+
USE SCONTR, ONLY : BLNK_SUB_NAM, ELDT_BUG_BCHK_BIT, ELDT_BUG_BMAT_BIT, NSUB, NTSUB, FATAL_ERR
4242
USE TIMDAT, ONLY : TSEC
4343
USE SUBR_BEGEND_LEVELS, ONLY : TMEM1_BEGEND
4444
USE CONSTANTS_1, ONLY : ZERO, ONE, THREE
4545
USE NONLINEAR_PARAMS, ONLY : LOAD_ISTEP
4646
USE MODEL_STUF, ONLY : ALPVEC, BE1, EID, DT, EM, ELDOF, KE, PCOMP_LAM, PCOMP_PROPS, PRESS, PPE, PTE, SE1, STE1, &
47-
SHELL_AALP, SHELL_A, SHELL_PROP_ALP, TREF, TYPE, XEB, XEL, ELGP, FCONV, STRESS, KED
47+
SHELL_AALP, SHELL_A, SHELL_PROP_ALP, TREF, TYPE, XEB, XEL, ELGP, FCONV, STRESS, KED, &
48+
NUM_EMG_FATAL_ERRS
4849
USE DEBUG_PARAMETERS, ONLY : DEBUG
4950

5051
USE TMEM1_USE_IFs
@@ -262,6 +263,14 @@ SUBROUTINE TMEM1 ( OPT, AREA, X2E, X3E, Y3E, WRT_BUG_THIS_TIME, BIG_BM )
262263

263264
IF ((OPT(6) == 'Y') .AND. (LOAD_ISTEP > 1)) THEN
264265

266+
IF (PCOMP_PROPS == 'Y') THEN
267+
FATAL_ERR = FATAL_ERR + 1
268+
NUM_EMG_FATAL_ERRS = NUM_EMG_FATAL_ERRS + 1
269+
WRITE(ERR,*) ' *ERROR: Code not written for CTRIA3 composite buckling or differential stiffness.'
270+
WRITE(F06,*) ' *ERROR: Code not written for CTRIA3 composite buckling or differential stiffness.'
271+
CALL OUTA_HERE ( 'Y' )
272+
ENDIF
273+
265274
! Accoring to:
266275
! Robert D. Cook, David S. Malkus, Michael E. Plesha Concepts and Applications of Finite Element Analysis, 3rd Edition 1989
267276
! Section 14.3 Stress Stiffness Matrix Of A Plate Element

Source/Interfaces/QDEL1_Interface.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ MODULE QDEL1_Interface
2828

2929
INTERFACE
3030

31-
SUBROUTINE QDEL1 ( OPT, WRITE_WARN )
31+
SUBROUTINE QDEL1 ( OPT, INT_ELEM_ID, WRITE_WARN )
3232

3333

3434
USE PENTIUM_II_KIND, ONLY : BYTE, LONG, DOUBLE
@@ -46,6 +46,7 @@ SUBROUTINE QDEL1 ( OPT, WRITE_WARN )
4646
IMPLICIT NONE
4747

4848
CHARACTER(1*BYTE), INTENT(IN) :: OPT(6) ! 'Y'/'N' flags for whether to calc certain elem matrices
49+
INTEGER(LONG), INTENT(IN) :: INT_ELEM_ID ! Internal element ID
4950
CHARACTER(LEN=*), INTENT(IN) :: WRITE_WARN ! If 'Y" write warning messages, otherwise do not
5051
CHARACTER( 1*BYTE) :: RED_INT_SHEAR ! If 'Y', use Gaussian weighted average of B matrices for shear terms
5152

Source/Interfaces/QMEM1_Interface.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ MODULE QMEM1_Interface
2828

2929
INTERFACE
3030

31-
SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
31+
SUBROUTINE QMEM1 ( OPT, INT_ELEM_ID, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
3232

3333

3434
USE PENTIUM_II_KIND, ONLY : BYTE, LONG, DOUBLE
@@ -48,6 +48,7 @@ SUBROUTINE QMEM1 ( OPT, IORD, RED_INT_SHEAR, AREA, XSD, YSD, BIG_BM )
4848
CHARACTER( 1*BYTE), INTENT(IN) :: RED_INT_SHEAR ! If 'Y', use Gaussian weighted average of B matrices for shear terms
4949
CHARACTER(46*BYTE) :: IORD_MSG ! Character name of the integration order (used for debug output)
5050

51+
INTEGER(LONG), INTENT(IN) :: INT_ELEM_ID ! Internal element ID
5152
INTEGER(LONG), INTENT(IN) :: IORD ! Gaussian integration order for element
5253
INTEGER(LONG) :: GAUSS_PT ! Gauss point number (used for output in subr SHP2DQ
5354
INTEGER(LONG), PARAMETER :: ID1( 8) = (/ 1, & ! ID1(1) = 1 means virgin 8X8 elem DOF 1 is MYSTRAN 24X24 elem DOF 1

Source/LK1/L1A/LOADB.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -615,8 +615,8 @@ SUBROUTINE LOADB
615615
! If they want to continue put DEBUG 201 w/val /= 0 entry in the BDF
616616

617617
IF ((SOL_NAME(1:8) == 'DIFFEREN') .OR. (SOL_NAME(1:8) == 'BUCKLING')) THEN
618-
IF((NCTRIA3 > 0) .OR. (NCTRIA3K > 0) .OR. (NCQUAD4 > 0) .OR. (NCQUAD4K > 0) .OR. (NCSHEAR > 0)) THEN
619-
MESSAG1= ' *WARNING: BUCKLING and DIFFERN SOL are only coded for the BAR, HEXA, PENTA, and TETRA elements'
618+
IF((NCSHEAR > 0)) THEN
619+
MESSAG1= ' *WARNING: BUCKLING and DIFFERN SOL are only coded for the BAR, HEXA, PENTA, TETRA, TRIA, and QUAD elements'
620620
MESSAG2= ' Either remove all other elements or include a Bulk Data entry: DEBUG 201, with value /= 0'
621621
IF (DEBUG(201) == 0) THEN
622622
WRITE(F06,*) MESSAG1
@@ -642,8 +642,8 @@ SUBROUTINE LOADB
642642
' ++',127X,'++',/, &
643643
' ++', 6X,' B U C K L I N G & D I F F E R E N S O L a r e o n l y c o d e d f o r e l e m e n t s:',18X,'++',/ &
644644
' ++',127X,'++',/, &
645-
' ++', 6X,' BAR, HEXA, PENTA, TETRA', 51X, '++' &
646-
8X,'++',/,' ++',127X,'++',/ &
645+
' ++ BAR, HEXA, PENTA, TETRA, TRIA3, TRIA3K, QUAD4, QUAD4K ' ,28X,'++',/ &
646+
' ++',127X,'++',/ &
647647
' ++', 6X,' A l l o t h e r e l e m s i g n o r e d i n t h e d i f f e r e n t i a l s t i f f c a l c s', &
648648
10X,'++',/,' ++',127X,'++',/ &
649649
' ++',127X,'++',/ &

0 commit comments

Comments
 (0)