diff --git a/Source/LK1/L1A-CC/CHK_CC_CMD_DESCRIBERS.f90 b/Source/LK1/L1A-CC/CHK_CC_CMD_DESCRIBERS.f90 index 5ffe93e4..22a0f14d 100644 --- a/Source/LK1/L1A-CC/CHK_CC_CMD_DESCRIBERS.f90 +++ b/Source/LK1/L1A-CC/CHK_CC_CMD_DESCRIBERS.f90 @@ -34,7 +34,7 @@ SUBROUTINE CHK_CC_CMD_DESCRIBERS ( WHAT, NUM_WORDS ) USE IOUNT1, ONLY : WRT_ERR, ERR, F06 USE SCONTR, ONLY : BLNK_SUB_NAM, CC_CMD_DESCRIBERS, ECHO, FATAL_ERR, WARN_ERR, NSUB USE TIMDAT, ONLY : TSEC - USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_LOC, STRN_OPT, STRE_LOC, STRE_OPT, FORC_LOC + USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_LOC, STRN_OPT, STRN_CUR, STRE_LOC, STRE_OPT, FORC_LOC USE PARAMS, ONLY : SUPWARN USE CHK_CC_CMD_DESCRIBERS_USE_IFs @@ -338,6 +338,12 @@ SUBROUTINE CHK_CC_CMD_DESCRIBERS ( WHAT, NUM_WORDS ) STRN_OPT = 'SHEAR' ENDIF + IF (CC_CMD_DESCRIBERS(I)(1:6) == 'STRCUR' ) THEN + STRN_CUR = 'STRCUR' + ELSE IF (CC_CMD_DESCRIBERS(I)(1:5) == 'FIBER' ) THEN + STRN_CUR = 'FIBER' + ENDIF + ENDDO ENDIF diff --git a/Source/LK9/L91/WRITE_ELEM_STRAINS.f90 b/Source/LK9/L91/WRITE_ELEM_STRAINS.f90 index 5654af86..9f55cccc 100644 --- a/Source/LK9/L91/WRITE_ELEM_STRAINS.f90 +++ b/Source/LK9/L91/WRITE_ELEM_STRAINS.f90 @@ -38,7 +38,7 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) USE NONLINEAR_PARAMS, ONLY : LOAD_ISTEP USE LINK9_STUFF, ONLY : EID_OUT_ARRAY, GID_OUT_ARRAY, OGEL, POLY_FIT_ERR, POLY_FIT_ERR_INDEX USE MODEL_STUF, ONLY : ELEM_ONAME, ELMTYP, LABEL, SCNUM, STITLE, TITLE, TYPE - USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_LOC, STRN_OPT, STRN_OUT + USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_LOC, STRN_OPT, STRN_OUT, STRN_CUR USE WRITE_ELEM_STRAINS_USE_IFs @@ -66,9 +66,13 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) INTEGER(LONG) :: I,J,L ! DO loop indices INTEGER(LONG) :: K ! Counter INTEGER(LONG) :: NCOLS ! Num of cols to write out + INTEGER(LONG) :: IS_FIBER_DISTANCE CHARACTER(139*BYTE) :: CLINE_BUF ! Pre-assembled CENTER line for solid strains (matches FORMAT 1303) CHARACTER(139*BYTE) :: GLINE_BUF ! Pre-assembled GRD line for solid strains (matches FORMAT 1306) - + CHARACTER( 6*BYTE) :: FIBER_HDR_1 + CHARACTER( 9*BYTE) :: FIBER_HDR_2 + CHARACTER( 6*BYTE) :: OPT_HDR_1 + CHARACTER( 9*BYTE) :: OPT_HDR_2 REAL(DOUBLE) :: ABS_ANS(11) ! Max ABS for all element output REAL(DOUBLE) :: MAX_ANS(11) ! Max for all element output REAL(DOUBLE) :: MIN_ANS(11) ! Min for all element output @@ -102,7 +106,6 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) CHARACTER(4*BYTE) :: CEN_WORD ! the word "CEN/" (we need to cast the length) - ! ********************************************************************************************************************************** ! Initialize DEVICE_CODE = 1 ! PLOT @@ -137,6 +140,13 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) WRITE_F06 = (STRN_OUT(1:1) == 'Y') WRITE_OP2 = (STRN_OUT(2:2) == 'Y') + IF (STRN_CUR == 'FIBER') THEN + IS_FIBER_DISTANCE = 1 + ELSE + IS_FIBER_DISTANCE = 0 + ENDIF + + IF (IHDR == 'Y') THEN ! -- F06 header: OUTPUT FOR SUBCASE, EIGENVECTOR or CRAIG-BAMPTON DOF CALL WRITE_SUBCASE_EIGENVEC_HEADER(JSUB, WRITE_F06) @@ -196,6 +206,22 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) IF (WRITE_F06) THEN + IF (STRN_CUR == 'FIBER') THEN + FIBER_HDR_1 = 'Fiber' + FIBER_HDR_2 = 'Distance' + ELSE + FIBER_HDR_1 = 'Strain' + FIBER_HDR_2 = 'Curvature' + ENDIF + + IF (STRN_OPT == 'VONMISES') THEN + OPT_HDR_1 = '' + OPT_HDR_2 = 'von Mises' + ELSE + OPT_HDR_1 = 'Max' + OPT_HDR_2 = 'Shear-XY' + ENDIF + ! -- F06 1st 2 header lines for strain output description IF (TYPE(1:4) == 'ELAS') THEN IF (SOL_NAME(1:12) == 'GEN CB MODEL') THEN @@ -294,27 +320,15 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) WRITE(F06,1302) FILL(1: 1), FILL(1: 1) ENDIF ELSE IF ((TYPE(1:5) == 'QUAD4') .OR. (TYPE(1:5) == 'QUAD8')) THEN - IF (STRN_OPT == 'VONMISES') THEN - WRITE(F06,1401) FILL(1: 1), FILL(1: 1), FILL(1: 1) - ELSE - WRITE(F06,1402) FILL(1: 1), FILL(1: 1) - ENDIF - + WRITE(F06,1400) FIBER_HDR_1, ' Strains', ' Strains', OPT_HDR_1, FIBER_HDR_2, OPT_HDR_2 ELSE IF (TYPE == 'ROD ') THEN WRITE(F06,1501) FILL(1: 1), FILL(1: 1) - ELSE IF (TYPE(1:5) == 'SHEAR') THEN WRITE(F06,1601) FILL(1: 1), FILL(1: 1) ELSE IF (TYPE(1:5) == 'TRIA3') THEN - IF (STRN_OPT == 'VONMISES') THEN - WRITE(F06,1701) FILL(1: 1), FILL(1: 1), FILL(1: 1) - ELSE - WRITE(F06,1702) FILL(1: 1), FILL(1: 1) - ENDIF - + WRITE(F06,1700) FIBER_HDR_1, ' Strains', ' Strains', OPT_HDR_1, FIBER_HDR_2, OPT_HDR_2 ELSE IF (TYPE == 'BUSH ') THEN WRITE(F06,1801) FILL(1: 1), FILL(1: 1) - ELSE IF (TYPE == 'USERIN ') THEN WRITE(F06,1901) FILL(1: 1), FILL(1: 1) ELSE @@ -466,7 +480,7 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) !CALL WRITE_OST_CQUAD4 ( NUM, FILL, ISUBCASE, ITABLE, TITLEI, STITLEI, LABELI ) !CALL GET_STRESS_CODE(STRESS_CODE, IS_VON_MISES, IS_STRAIN, IS_FIBER_DISTANCE) - CALL GET_STRESS_CODE( STRESS_CODE, 1, 1, 1) + CALL GET_STRESS_CODE( STRESS_CODE, 1, 1, IS_FIBER_DISTANCE) IF ((STRN_LOC == 'CENTER ') .AND. (TYPE(1:5) /= 'QUAD8')) THEN ! CQUAD4-33 !(eid_device, @@ -621,7 +635,7 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) ELSE IF (TYPE(1:5) == 'TRIA3') THEN CALL WRITE_OST_CTRIA3 (NUM, FILL, ISUBCASE, ITABLE, TITLEI, STITLEI, LABELI, & FIELD5_INT_MODE, FIELD6_EIGENVALUE, & - WRITE_F06, WRITE_OP2) + WRITE_F06, WRITE_OP2, IS_FIBER_DISTANCE) ELSE IF (TYPE == 'BUSH ') THEN IF (WRITE_OP2) THEN @@ -714,19 +728,6 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) 1303 FORMAT(1X,I8,2X,'CENTER ',8X,8(1ES14.6)) - - ! 1301 FORMAT(A,'Element Epsilon-xx Epsilon-yy Epsilon-zz Gamma-xy Gamma-yz Gamma-zx von Mises' & - ! ,/,A,' ID') - - ! 1302 FORMAT(A,'Element Epsilon-xx Epsilon-yy Epsilon-zz Gamma-xy Gamma-yz Gamma-zx ', & - ! 'Octahedral Strain' & - ! ,/,A,' ID',91X,'Direct Shear') - - ! 1303 FORMAT(19X,I8,8(1ES14.6)) - - - - 1304 FORMAT(28X,'------------- ------------- ------------- ------------- ------------- ------------- -------------',/, & 16X,'MAX* : ',7(ES14.6),/, & 16X,'MIN* : ',7(ES14.6),//, & @@ -743,15 +744,11 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) 1306 FORMAT(1X,A,10X,'GRD',I8,5X,8(1ES14.6)) ! QUAD4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1401 FORMAT(1X,A,'Elem Location Fibre Strains In Element Coord System Principal Strains (Zero Shear)', & - ' Transverse Transverse % Poly',/,1X,A, & - ' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor von Mises', & - ' Shear-XZ Shear-YZ Fit Err',A) - - 1402 FORMAT(1X,A,'Elem Location Fibre Strains In Element Coord System Principal Strains (Zero Shear)', & - ' Max Transverse Transverse % Poly',/,1X,A, & - ' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor Shear-XY', & - ' Shear-XZ Shear-YZ Fit Err',A) + 1400 FORMAT( & + ' Elem Location ',A6,' ', A8, ' In Element Coord System Principal ', A8, ' (Zero Shear)', & + ' ',A6,' Transverse Transverse % Poly',/, & + ' ID ', A9, ' Normal-X Normal-Y Shear-XY Angle Major Minor ', & + ' ', A9, ' Shear-XZ Shear-YZ Fit Err') 1403 FORMAT(1X,A,I8,2X,'CENTER ',3X,1ES11.3,3(1ES13.5),0PF8.2,5(1ES13.5)) @@ -787,15 +784,11 @@ SUBROUTINE WRITE_ELEM_STRAINS ( JSUB, NUM, IHDR, NUM_PTS, ITABLE ) ! TRIA3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1701 FORMAT(1X,A,'Element Location Fibre Strains In Element Coord System Principal Strains (Zero Shear)', & - ' Transverse Transverse' & - ,/,1X,A,' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor' & - ,' von Mises Shear-XZ Shear-YZ',A) - - 1702 FORMAT(1X,A,'Element Location Fibre Strains In Element Coord System Principal Strains (Zero Shear)', & - ' Max Transverse Transverse' & - ,/,1X,A,' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor', & - ' Shear-XY Shear-XZ Shear-YZ',A) + 1700 FORMAT( & + ' Element Location ',A6,' ', A8, ' In Element Coord System Principal ', A8, ' (Zero Shear)', & + ' ',A6,' Transverse Transverse',/, & + ' ID ', A9, ' Normal-X Normal-Y Shear-XY Angle Major Minor ', & + ' ', A9, ' Shear-XZ Shear-YZ') 1703 FORMAT(1X,I8,4X,'Anywhere',2X,4(1ES13.5),0PF9.3,5(1ES13.5)) @@ -935,7 +928,7 @@ END SUBROUTINE WRITE_OST_CSHEAR !============================================================================== SUBROUTINE WRITE_OST_CTRIA3(NUM, FILL, ISUBCASE, ITABLE, TITLE, SUBTITLE, LABEL, & FIELD5_INT_MODE, FIELD6_EIGENVALUE, & - WRITE_F06, WRITE_OP2) + WRITE_F06, WRITE_OP2, IS_FIBER_DISTANCE) USE PENTIUM_II_KIND, ONLY : BYTE, LONG, DOUBLE USE IOUNT1, ONLY : ERR, F06, OP2 USE LINK9_STUFF, ONLY : EID_OUT_ARRAY, OGEL @@ -948,6 +941,7 @@ SUBROUTINE WRITE_OST_CTRIA3(NUM, FILL, ISUBCASE, ITABLE, TITLE, SUBTITLE, LABEL, CHARACTER(LEN=128), INTENT(IN) :: SUBTITLE ! the subcase SUBTITLE CHARACTER(LEN=128), INTENT(IN) :: LABEL ! the subcase LABEL LOGICAL, INTENT(IN) :: WRITE_F06, WRITE_OP2 + INTEGER(LONG), INTENT(IN) :: IS_FIBER_DISTANCE CHARACTER(119*BYTE) :: FILL ! Padding for output format @@ -983,7 +977,7 @@ SUBROUTINE WRITE_OST_CTRIA3(NUM, FILL, ISUBCASE, ITABLE, TITLE, SUBTITLE, LABEL, WRITE(ERR,100) ITABLE,NUM,NVALUES,NTOTAL !CALL GET_STRESS_CODE(STRESS_CODE, IS_VON_MISES, IS_STRAIN, IS_FIBER_DISTANCE) - CALL GET_STRESS_CODE( STRESS_CODE, 1, 1, 1) + CALL GET_STRESS_CODE( STRESS_CODE, 1, 1, IS_FIBER_DISTANCE) CALL WRITE_OES3_STATIC(ITABLE, ISUBCASE, DEVICE_CODE, ELEMENT_TYPE, NUM_WIDE, STRESS_CODE, & TITLE, SUBTITLE, LABEL, FIELD5_INT_MODE, FIELD6_EIGENVALUE) WRITE(OP2) NVALUES diff --git a/Source/LK9/L91/WRITE_ELEM_STRESSES.f90 b/Source/LK9/L91/WRITE_ELEM_STRESSES.f90 index ebaadfb7..082205a1 100644 --- a/Source/LK9/L91/WRITE_ELEM_STRESSES.f90 +++ b/Source/LK9/L91/WRITE_ELEM_STRESSES.f90 @@ -54,6 +54,8 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) ! Indicators of whether to write note on indices of POLY_FIT_ERR CHARACTER( 1*BYTE) :: WRT_ERR_INDEX_NOTE(MAX_NUM_STR) + CHARACTER( 6*BYTE) :: OPT_HDR_1 + CHARACTER( 9*BYTE) :: OPT_HDR_2 INTEGER(LONG), INTENT(IN) :: JSUB ! Solution vector number INTEGER(LONG), INTENT(IN) :: NUM ! The number of rows of OGEL to write out @@ -199,6 +201,14 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) IF (WRITE_F06) THEN + IF (STRE_OPT == 'VONMISES') THEN + OPT_HDR_1 = '' + OPT_HDR_2 = 'von Mises' + ELSE + OPT_HDR_1 = 'Max' + OPT_HDR_2 = 'Shear-XY' + ENDIF + ! -- F06 1st 2 header lines for stress output description IF ((TYPE(1:3) == 'BAR') .OR. (TYPE(1:4) == 'BEAM')) THEN IF (SOL_NAME(1:12) == 'GEN CB MODEL') THEN @@ -309,11 +319,7 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) ENDIF ELSE IF ((TYPE(1:5) == 'QUAD4') .OR. (TYPE(1:5) == 'QUAD8')) THEN - IF (STRE_OPT == 'VONMISES') THEN - WRITE(F06,1401) FILL(1: 1), FILL(1: 1), FILL(1: 1) - ELSE - WRITE(F06,1402) FILL(1: 1), FILL(1: 1) - ENDIF + WRITE(F06,1400) 'Fiber', 'Stresses', 'Stresses', OPT_HDR_1, 'Distance', OPT_HDR_2 ELSE IF (TYPE == 'ROD ') THEN WRITE(F06,1501) FILL(1: 1), FILL(1: 1) @@ -322,11 +328,7 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) WRITE(F06,1601) FILL(1: 1), FILL(1: 1) ELSE IF (TYPE(1:5) == 'TRIA3') THEN - IF (STRE_OPT == 'VONMISES') THEN - WRITE(F06,1701) FILL(1: 1), FILL(1: 1), FILL(1: 1) - ELSE - WRITE(F06,1702) FILL(1: 1), FILL(1: 1) - ENDIF + WRITE(F06,1700) 'Fiber', 'Stresses', 'Stresses', OPT_HDR_1, 'Distance', OPT_HDR_2 ELSE IF (TYPE == 'BUSH ') THEN WRITE(F06,1801) FILL(1: 1), FILL(1: 1) @@ -755,15 +757,12 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) 1306 FORMAT(1X,A,10X,'GRD',I8,5X,8(1ES14.6)) ! QUAD4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1401 FORMAT(1X,A,' Elem Location Fibre Stresses In Element Coord System Principal Stresses (Zero Shear)', & - ' Transverse Transverse % Poly',/,1X,A, & - ' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor von Mises', & - ' Shear-XZ Shear-YZ Fit Err',/,1X,A,119X,'(max through thickness)') - - 1402 FORMAT(1X,A,'Elem Location Fibre Stresses In Element Coord System Principal Stresses (Zero Shear)', & - ' Max Transverse Transverse % Poly',/,1X,A, & - ' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor Shear-XY', & - ' Shear-XZ Shear-YZ Fit Err',/,1X,A,119X,'(max through thickness)') + 1400 FORMAT( & + ' Elem Location ',A6,' ', A8, ' In Element Coord System Principal ', A8, ' (Zero Shear)', & + ' ',A6,' Transverse Transverse % Poly',/, & + ' ID ', A9, ' Normal-X Normal-Y Shear-XY Angle Major Minor ', & + ' ', A9, ' Shear-XZ Shear-YZ Fit Err',/, & + 121X,'(max through thickness)') 1403 FORMAT(1X,A,I8,2X,'CENTER ',3X,1ES11.3,3(1ES13.5),0PF8.2,5(1ES13.5)) @@ -799,16 +798,12 @@ SUBROUTINE WRITE_ELEM_STRESSES ( JSUB, NUM, IHEADER, NUM_PTS, ITABLE ) ! TRIA3 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - 1701 FORMAT(1X,A,'Element Location Fibre Stresses In Element Coord System Principal Stresses (Zero Shear)', & - ' Transverse Transverse' & - ,/,1X,A,' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor' & - ,' von Mises Shear-XZ Shear-YZ' & - ,/,1X,A,123X,'(max through thickness)') - - 1702 FORMAT(1X,A,'Element Location Fibre Stresses In Element Coord System Principal Stresses (Zero Shear)', & - ' Max Transverse Transverse' & - ,/,1X,A,' ID Distance Normal-X Normal-Y Shear-XY Angle Major Minor', & - ' Shear-XY Shear-XZ Shear-YZ',/,1X,123X,'(max through thickness)') + 1700 FORMAT( & + ' Element Location ',A6,' ', A8, ' In Element Coord System Principal ', A8, ' (Zero Shear)', & + ' ',A6,' Transverse Transverse',/, & + ' ID ', A9, ' Normal-X Normal-Y Shear-XY Angle Major Minor ', & + ' ', A9, ' Shear-XZ Shear-YZ',/, & + 125X,'(max through thickness)') 1703 FORMAT(1X,I8,4X,'Anywhere',2X,4(1ES13.5),0PF9.3,5(1ES13.5)) diff --git a/Source/LK9/L92/SHELL_STRAIN_OUTPUTS.f90 b/Source/LK9/L92/SHELL_STRAIN_OUTPUTS.f90 index 594d698f..ca9e3cce 100644 --- a/Source/LK9/L92/SHELL_STRAIN_OUTPUTS.f90 +++ b/Source/LK9/L92/SHELL_STRAIN_OUTPUTS.f90 @@ -35,7 +35,7 @@ SUBROUTINE SHELL_STRAIN_OUTPUTS ( SIZE_ALLOCATED, NUM1, NUM_FEMAP_ROWS, WRITE_OG USE TIMDAT, ONLY : TSEC USE CONSTANTS_1, ONLY : ZERO USE MODEL_STUF, ONLY : ANY_FAILURE_THEORY, FAILURE_THEORY, PCOMP_PROPS, STRAIN, STRESS, TYPE, ZS - USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_OPT + USE CC_OUTPUT_DESCRIBERS, ONLY : STRN_OPT, STRN_CUR USE LINK9_STUFF, ONLY : FTNAME, OGEL USE FEMAP_ARRAYS, ONLY : FEMAP_EL_VECS USE PARAMS, ONLY : PRTNEU @@ -67,6 +67,7 @@ SUBROUTINE SHELL_STRAIN_OUTPUTS ( SIZE_ALLOCATED, NUM1, NUM_FEMAP_ROWS, WRITE_OG REAL(DOUBLE) :: SXZ,SYZ ! Transverse shear strains in plate elements REAL(DOUBLE) :: SXYMAX ! Max shear strain in plate elems (calc'd in subr PRINCIPAL_2D) REAL(DOUBLE) :: VONMISES ! von Mises strain + REAL(DOUBLE) :: FIBER_Z ! Value for the fiber distance or strain curvature column. LOGICAL :: WRITE_NEU INTRINSIC DMAX1,DMIN1 @@ -176,9 +177,17 @@ SUBROUTINE SHELL_STRAIN_OUTPUTS ( SIZE_ALLOCATED, NUM1, NUM_FEMAP_ROWS, WRITE_OG ENDIF DO I=1,NUM_ROWS - SX = STRAIN(1) + ZS(I)*STRAIN(4) - SY = STRAIN(2) + ZS(I)*STRAIN(5) - SXY = STRAIN(3) + ZS(I)*STRAIN(6) + IF (STRN_CUR == 'FIBER') THEN + FIBER_Z = ZS(I) + SX = STRAIN(1) + ZS(I)*STRAIN(4) + SY = STRAIN(2) + ZS(I)*STRAIN(5) + SXY = STRAIN(3) + ZS(I)*STRAIN(6) + ELSE + FIBER_Z = 1 - I ! 0 for membrane strain row and -1 for curvature row. + SX = (FIBER_Z + 1) * STRAIN(1) + FIBER_Z * STRAIN(4) + SY = (FIBER_Z + 1) * STRAIN(2) + FIBER_Z * STRAIN(5) + SXY = (FIBER_Z + 1) * STRAIN(3) + FIBER_Z * STRAIN(6) + ENDIF SXZ = STRAIN(7) SYZ = STRAIN(8) CALL PRINCIPAL_2D ( SX, SY, SXY, ANGLE, SMAJ, SMIN, SXYMAX, MEAN, VONMISES ) @@ -198,7 +207,7 @@ SUBROUTINE SHELL_STRAIN_OUTPUTS ( SIZE_ALLOCATED, NUM1, NUM_FEMAP_ROWS, WRITE_OG OGEL(NUM1,J) = ZERO ENDDO ELSE - OGEL(NUM1, 1) = ZS(I) + OGEL(NUM1, 1) = FIBER_Z OGEL(NUM1, 2) = SX OGEL(NUM1, 3) = SY OGEL(NUM1, 4) = SXY @@ -293,7 +302,6 @@ SUBROUTINE SHELL_STRAIN_OUTPUTS ( SIZE_ALLOCATED, NUM1, NUM_FEMAP_ROWS, WRITE_OG ,/,14X,' INVALID ',A,' FAILURE THEORY = ',A,'. VALID ONES ARE: ',A) - ! ********************************************************************************************************************************** END SUBROUTINE SHELL_STRAIN_OUTPUTS diff --git a/Source/Modules/CC_OUTPUT_DESCRIBERS.f90 b/Source/Modules/CC_OUTPUT_DESCRIBERS.f90 index a62427b2..6517f616 100644 --- a/Source/Modules/CC_OUTPUT_DESCRIBERS.f90 +++ b/Source/Modules/CC_OUTPUT_DESCRIBERS.f90 @@ -71,6 +71,7 @@ MODULE CC_OUTPUT_DESCRIBERS CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRN_OUT = 'YNNNN ' CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRN_MAG = 'MAG ' CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRN_OPT = 'VONMISES' + CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRN_CUR = 'STRCUR ' CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRN_LOC = 'CENTER ' CHARACTER(LEN(CC_CMD_DESCRIBERS)) :: STRE_SORT = 'SORT1 '