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