next up previous
Next: Subroutine UITERM Up: FEMGEN Geometry User Routines Previous: Subroutine UISHAP

Subroutine UISURF

      SUBROUTINE UISURF(IWHAT,INDEX,NAME,ISTYPE,
     1                  LREAL,RDATA,LINTG,IDATA,LPTR,IPTR,
     2                  IERROR)
C                                                         U I S U R F
C                                                         ===========
C********************************************************************
C
C --- PURPOSE : INTERFACE TO SURFACE ENTITY IN FEMGEN DATA BASE
C
C --- IN      : IWHAT  : ACTION REQUESTED ON ENTITY
C                      : 1 : CREATE
C                      : 2 : FIND
C                      : 3 : REPLACE
C                      : 4 : READ
C                      : 5 : DELETE
C
C --- IN/OUT  : INDEX  : POINTER TO INSTANCE
C             : NAME   : ENTITY NAME
C             : ISTYPE : ENTITY SUB-TYPE
C             : LREAL  : NUMBER OF REALS
C             : RDATA  : REAL DATA
C             : LINTG  : NUMBER OF INTEGERS
C             : IDATA  : INTEGER DATA
C             : LPTR   : NUMBER OF POINTERS
C             : IPTR   : POINTER DATA
C             
C --- OUT     : IERROR : 0 : OK
C                      : 1 : ILLEGAL ACTION REQUESTED
C                      : 2 : INCORRECT POINTER TO ENTITY
C                      : 3 : ILLEGAL SUB-TYPE
C                      : 5 : INCORRECT DATA
C
C********************************************************************
C
C --- METHOD  : THE DATA PASSED TO OR OUTPUT FROM THIS ROUTINE IS
C               DEPENDENT ON THE RELEVANT SUB-TYPE.
C
C   ISTYPE = 1 : BOUNDARY INTERPOLATION
C              : LINTG       = 4
C              : IDATA(1)    = ELEMENT TYPE
C              : IDATA(2)    = ELEMENT VARIANT
C              : IDATA(3)    = ELEMENT GROUP  
C              : IDATA(4)    = NUMBER OF BOUNDING SIDES (NBS)
C              : LPTR        = NUMBER OF POINTERS
C              : IPTR(1:NBS) = INDICES TO LINE INSTANCES
C              : IPTR(NBS+1) = INDEX TO FIRST ELEMENT INSTANCE
C              : IPTR(NBS+2) = INDEX TO LAST ELEMENT INSTANCE
C              : IPTR(NBS+3) = INDEX TO COORDINATE SYSTEM INSTANCE
C              : IPTR(NBS+4) = INDEX TO MATERIAL INSTANCE
C              : IPTR(NBS+5) = INDEX TO PHYSICAL INSTANCE
C
C   ISTYPE = 2 : PROJECTED ONTO A SHAPE
C              : LINTG       = 4
C              : IDATA(1)    = ELEMENT TYPE
C              : IDATA(2)    = ELEMENT VARIANT
C              : IDATA(3)    = ELEMENT GROUP  
C              : IDATA(4)    = NUMBER OF BOUNDING SIDES (NBS)
C              : LPTR        = NUMBER OF POINTERS
C              : IPTR(1:NBS) = INDICES TO LINE INSTANCES
C              : IPTR(NBS+1) = INDEX TO FIRST ELEMENT INSTANCE
C              : IPTR(NBS+2) = INDEX TO LAST ELEMENT INSTANCE
C              : IPTR(NBS+3) = INDEX TO COORDINATE SYSTEM INSTANCE
C              : IPTR(NBS+4) = INDEX TO MATERIAL INSTANCE
C              : IPTR(NBS+5) = INDEX TO PHYSICAL INSTANCE
C              : IPTR(NBS+6) = INDEX TO SHAPE INSTANCE
C
C   ISTYPE = 3 : TRANSFORMATION
C              : LINTG       = 4
C              : IDATA(1)    = ELEMENT TYPE
C              : IDATA(2)    = ELEMENT VARIANT
C              : IDATA(3)    = ELEMENT GROUP  
C              : IDATA(4)    = NUMBER OF BOUNDING SIDES (NBS)
C              : LPTR        = NUMBER OF POINTERS
C              : IPTR(1:NBS) = INDICES TO LINE INSTANCES
C              : IPTR(NBS+1) = INDEX TO FIRST ELEMENT INSTANCE
C              : IPTR(NBS+2) = INDEX TO LAST ELEMENT INSTANCE
C              : IPTR(NBS+3) = INDEX TO COORDINATE SYSTEM INSTANCE
C              : IPTR(NBS+4) = INDEX TO MATERIAL INSTANCE
C              : IPTR(NBS+5) = INDEX TO PHYSICAL INSTANCE
C              : IPTR(NBS+6) = INDEX TO TRANSFORM INSTANCE
C
C
C   ISTYPE = 4   REGION                                                 
C              : LINTG         = 4                                      
C              : IDATA(1)      = ELEMENT TYPE                           
C              : IDATA(2)      = ELEMENT VARIANT                        
C              : IDATA(3)      = ELEMENT GROUP                          
C              : IDATA(4)      = NUMBER OF HOLES (NHS)                  
C              : LPTR          = NUMBER OF POINTERS = 7 + NHS           
C              : IPTR(1)       = INDEX OF OUTER BOUNDARY SET            
C              : IPTR(2:NHS+1) = INDICES TO HOLE SETS (IF ANY)          
C              : IPTR(NHS+2)   = INDEX TO FIRST ELEMENT INSTANCE        
C              : IPTR(NHS+3)   = INDEX TO LAST ELEMENT INSTANCE         
C              : IPTR(NHS+4)   = INDEX TO COORDINATE SYSTEM INSTANCE    
C              : IPTR(NHS+5)   = INDEX TO MATERIAL INSTANCE             
C              : IPTR(NHS+6)   = INDEX TO PHYSICAL INSTANCE             
C              : IPTR(NHS+7)   = INDEX TO SHAPE INSTANCE                
C
C********************************************************************
C
      REAL      RDATA(*)
      INTEGER   IWHAT,INDEX,ISTYPE,LREAL,LINTG,LPTR,IERROR
      INTEGER   IDATA(*),IPTR(*)
      CHARACTER*(*) NAME
C
C********************************************************************



Femsys Limited
8/18/1999