@@ -42,7 +42,8 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
4242 MRPBAR, MRPBEAM, MRPBUSH, MRPELAS, MRPROD, MRPSHEAR, MRPUSER1, MPSOLID, BLNK_SUB_NAM, &
4343 NCORD, NGRID
4444 USE SCONTR, ONLY : DEDAT_Q4_MATANG_KEY, DEDAT_Q4_THICK_KEY, DEDAT_Q4_POFFS_KEY, &
45- DEDAT_T3_MATANG_KEY, DEDAT_T3_THICK_KEY, DEDAT_T3_POFFS_KEY
45+ DEDAT_T3_MATANG_KEY, DEDAT_T3_THICK_KEY, DEDAT_T3_POFFS_KEY, &
46+ DEDAT_Q8_THICK_KEY, DEDAT_Q8_POFFS_KEY
4647 USE PARAMS, ONLY : EPSIL, TSTM_DEF
4748 USE TIMDAT, ONLY : TSEC
4849 USE SUBR_BEGEND_LEVELS, ONLY : ELMDAT_BEGEND
@@ -145,7 +146,7 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
145146
146147 ! *** NOTE: CHECK CODE FOR 3D ELEMS IF THEY ARE TO HAVE OFFSET. GRID ORDER MAY GET CHANGED IN SUBR EDAT_FIXUP (SEE EMG)
147148 IF ((TYPE == ' BAR ' ) .OR. (TYPE == ' BEAM ' ) .OR. (TYPE == ' BUSH ' ) .OR. (TYPE (1 :5 ) == ' TRIA3' ) .OR. &
148- (TYPE (1 :5 ) == ' QUAD4' )) THEN
149+ (TYPE (1 :5 ) == ' QUAD4' ) .OR. ( TYPE ( 1 : 5 ) == ' QUAD8 ' ) ) THEN
149150 CAN_ELEM_TYPE_OFFSET = ' Y'
150151 ELSE
151152 CAN_ELEM_TYPE_OFFSET = ' N'
@@ -373,7 +374,8 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
373374 EPROP(I) = RPSHEAR(INTL_PID,I)
374375 ENDDO
375376
376- ELSE IF ((TYPE (1 :5 ) == ' TRIA3' ) .OR. (TYPE (1 :5 ) == ' QUAD4' )) THEN
377+ ELSE IF ((TYPE (1 :5 ) == ' TRIA3' ) .OR. (TYPE (1 :5 ) == ' QUAD4' ) .OR. (TYPE (1 :5 ) == ' QUAD8' )) THEN
378+
377379 ! For elems that not composites do EPROP in subr SHELL_ABD_MATRICES)
378380 IF (PCOMP_PROPS == ' N' ) THEN ! Shell properties are in array PSHELL (except maybe membrane thickness)
379381
@@ -392,8 +394,10 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
392394 THICK_AVG = ZERO ! DELTA locates where thickness key is in EDAT (rel to EID) for plates
393395 IF (TYPE (1 :5 ) == ' QUAD4' ) THEN
394396 DELTA = DEDAT_Q4_THICK_KEY
395- ELSE
397+ ELSE IF ( TYPE ( 1 : 5 ) == ' TRIA3 ' ) THEN
396398 DELTA = DEDAT_T3_THICK_KEY
399+ ELSE IF (TYPE (1 :5 ) == ' QUAD8' ) THEN
400+ DELTA = DEDAT_Q8_THICK_KEY
397401 ENDIF
398402
399403 IF (EDAT(EPNTK+ DELTA) > 0 ) THEN ! Membrane thickness was defined as grid thicknesses on connection entry
@@ -555,10 +559,9 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
555559 ENDIF
556560 NUMMAT = 1
557561
558- ELSE IF ((TYPE (1 :5 ) == ' TRIA3' ) .OR. (TYPE (1 :5 ) == ' QUAD4' )) THEN
562+ ELSE IF ((TYPE (1 :5 ) == ' TRIA3' ) .OR. (TYPE (1 :5 ) == ' QUAD4' ) .OR. ( TYPE ( 1 : 5 ) == ' QUAD8 ' ) ) THEN
559563 ! For elems that are not composites do EMAT in subr SHELL_ABD_MATRICES)
560564 IF (PCOMP_PROPS == ' N' ) THEN
561-
562565 INTL_MID(1 ) = PSHEL(INTL_PID,2 )
563566 IF (INTL_MID(1 ) /= 0 ) THEN
564567 MTRL_TYPE(1 ) = MATL(INTL_MID(1 ),2 )
@@ -820,6 +823,23 @@ SUBROUTINE ELMDAT1 ( INT_ELEM_ID, WRITE_WARN )
820823 ZOFFS = ZERO
821824 ENDIF
822825
826+ ELSE IF (TYPE (1 :5 ) == ' QUAD8' ) THEN
827+
828+ IROW = EDAT(EPNTK + DEDAT_Q8_POFFS_KEY)
829+ IF (IROW > 0 ) THEN ! Elem has offset. IROW > 0 is the row in PLATEOFF where ZOFFS is
830+ EOFF(INT_ELEM_ID) = ' Y'
831+ ZOFFS = PLATEOFF(IROW)
832+ IF (DABS(ZOFFS) > 0.D0 ) THEN ! Offset not yet allowed on quad8
833+ WRITE (ERR,* ) ' *ERROR : OFFSET CANNOT BE USED FOR CQUAD8'
834+ WRITE (F06,* ) ' *ERROR : OFFSET CANNOT BE USED FOR CQUAD8'
835+ NUM_EMG_FATAL_ERRS = NUM_EMG_FATAL_ERRS + 1
836+ FATAL_ERR = FATAL_ERR + 1
837+ ENDIF
838+ ELSE
839+ EOFF(INT_ELEM_ID) = ' N'
840+ ZOFFS = ZERO
841+ ENDIF
842+
823843 ENDIF
824844
825845! Determine which grids have finite offsets for this element
0 commit comments