Next: Subroutine 'userAN'
Up: Customised Analysis Environments
Previous: Subroutine 'userEL'
SUBROUTINE USERIQ(IMAT,IPHYS,ILOAD,AMATER,APHYS,ALOAD,MMATER, + MPHYS,MLOAD) C ****************************************************************** C * C * PURPOSE :- TO DEFINE USER MATERIALS, PHYSICAL PROPERTIES, C * AND LOADS. C * C * IN :- NONE C * C * OUT :- C * C * IMAT :- NUMBER OF MATERIAL TYPES (INTEGER) C * IPHYS :- NUMBER OF PROPERTY TYPES (INTEGER) C * ILOAD :- NUMBER OF LOAD TYPES (INTEGER) C * AMATER :- MATERIAL TYPE NAMES (CHARACTER*8(25)) C * APHYS :- PROPERTY TYPE NAMES (CHARACTER*8(25)) C * ALOAD :- LOAD TYPE NAMES (CHARACTER*8(25)) C * MMATER :- NUMBER OF REALS PER MATERIAL TYPE (INTEGER(2,25)) M C * MPHYS :- NUMBER OF REALS PER PROPERTY TYPE (INTEGER(4,25)) M C * MLOAD :- LOAD TYPE DESCRIPTORS (INTEGER(6,25)) M C * C * MMATER O : (1,*) = TOTAL NUMBER OF REALS FOR MATERIAL TYPE C * OR NUMBER OF 4 CHARACTER WORDS FOR EXTERNAL C * MATERIAL C * (2,*) = 1, INTERNAL MATERIAL, 2 EXTERNAL MATERIAL M C * C * MPHYS O : (1,*) : TOTAL NUMBER OF REALS FOR PHYSICAL TYPE C * OR NUMBER OF 4 CHARACTER WORDS FOR EXTERNAL C * PHYSICAL C * (2,*) : 0 : ORIENTATION NOT SPECIFIED C * : 1 : ORIENTATION VECTOR IN FIRST THREE C * VALUES C * (3,*) : 0 : OFFSET NOT SPECIFIED C * : 1 : 2 OFFSET VECTOR IN NEXT SIX VALUES C * (4,*) = 1, INTERNAL PHYSICAL, 2 EXTERNAL PHYSICAL M C * C * MLOAD O : (1,*) : TOTAL NUMBER OF VALUES C * (2,*) : 1 : SCALAR C * : 2 : VECTOR C * : 3 : MOMENT C * : 4 : TENSOR C * : 5 : MAGNITUDE AND DEGREE OF FREEDOM C * (3,*) : 1 : NODAL C * : 2 : ELEMENTAL C * : 3 : MOVING LOAD (GROUP OF POINT LOADS) C * (4,*) : COORDINATE SYSTEM C * : 1 : GLOBAL OR AS PART C * : 2 : ELEMENT LOCAL C * : 3 : AXIS SYSTEM DEFINED BY ORIGIN AND C * DIRECTION AS LAST SIX VALUES C * IF POSITIVE (ORIGIN + DIRECTION) C * IF NEGATIVE (TWO POINTS) C * (5,*) : IF VARIABLE LOAD C * : 1 : CONSTANT C * : 2 : LINEAR VARIATION DEFINED BY ZERO POINT C * AND DIRECTION OF INCREASE AS LAST SIX C * VALUES (AFTER COORDINATE SYSTEM) C * IF POSITIVE (ORIGIN + DIRECTION) C * IF NEGATIVE (TWO POINTS) C * (6,*) : IF LOAD OR INITIAL CONDITION M C * : 0 : INITIAL CONDITION M C * : 1 : LOAD M C * C ****************************************************************** C CHARACTER*8 AMATER(25), APHYS(25), ALOAD(25) INTEGER MMATER(2,25), MPHYS(4,25), MLOAD(6,25) M C CHARACTER*8 BMATER(2), BPHYS(6), BLOAD(8) INTEGER NMATER(2,2), NPHYS(4,6), NLOAD(6,8) M C DATA BMATER/ 'MAT ', + 'GENERAL '/ C DATA BPHYS/ 'THICKNES', + 'GENERAL ', + 'PIPE ', + 'BOX ', + 'USEC ', + 'TSEC '/ C DATA BLOAD/ 'PRESSURE', + 'FORCE ', + 'DISPLACE', + 'GRAVITY ', + 'TEMPERAT', + 'HEAT ', + 'HYDROSTA', + 'CENTRIFU'/ C DATA NMATER / 5, 1, 21, 1 / M C DATA NPHYS / 1, 0, 0, 1, M + 5, 1, 1, 1, M + 2, 1, 1, 1, M + 4, 1, 1, 1, M + 4, 1, 1, 1, M + 6, 1, 1, 1/ M C DATA NLOAD/ 2, 5, 2, 2, 1, 1, M + 2, 5, 1, 1, 1, 1, M + 2, 5, 1, 1, 1, 1, M + 2, 5, 2, 1, 1, 1, M + 2, 1, 1, 1, 1, 1, M + 2, 1, 2, 1, 1, 1, M + 2, 5, 2, 2, -2, 1, M + 2, 5, 2, -3, 1, 1/ M C IMAT = 2 IPHYS = 6 ILOAD = 8 C DO 100 I=1,IMAT AMATER(I) = BMATER(I) MMATER(1,I) = NMATER(1,I) M MMATER(2,I) = NMATER(2,I) M 100 CONTINUE C DO 200 I=1,IPHYS APHYS(I) = BPHYS(I) MPHYS(1,I) = NPHYS(1,I) MPHYS(2,I) = NPHYS(2,I) MPHYS(3,I) = NPHYS(3,I) MPHYS(4,I) = NPHYS(4,I) M 200 CONTINUE C DO 300 I=1,ILOAD ALOAD(I) = BLOAD(I) MLOAD(1,I) = NLOAD(1,I) MLOAD(2,I) = NLOAD(2,I) MLOAD(3,I) = NLOAD(3,I) MLOAD(4,I) = NLOAD(4,I) MLOAD(5,I) = NLOAD(5,I) MLOAD(6,I) = NLOAD(6,I) M 300 CONTINUE RETURN END