next up previous contents
Next: Subroutine 'userAN' Up: Customised Analysis Environments Previous: Subroutine 'userEL'

Example Subroutine 'userIQ'

      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



Femsys Limited
8/18/1999