Next: Example Subroutine 'userIQ'
Up: Customised Analysis Environments
Previous: Top Level Interface Subroutines
SUBROUTINE USEREL(IFGELT,IELVAR,ELNAME,IERR)
C
C ******************************************************************
C * PURPOSE :- TO PERFORM ELEMENT VARIANT MAPPINGS FOR USER *
C * IN :- *
C * IFGELT :- FEMGEN ELEMENT TYPE (INTEGER) *
C * IELVAR :- FEMGEN ELEMENT VARIANT (INTEGER) *
C * OUT :- *
C * ELNAME :- USER ELEMENT NAME (REAL ARRAY*2) *
C * IERR :- ERROR CODE (INTEGER) *
C * : 0 :- OK *
C * : 1 :- NO ELEMENT OF THIS TYPE OR VARIANT *
C * : 2 :- UNUSED SLOT IN ELEMENT VARIANT LISTS *
C ******************************************************************
C
DIMENSION MAP(20), ELNAME(2)
CHARACTER*8 NAMES(20,10)
C
C --- SEE APPENDIX D FOR FEMGEN ELEMENT TYPE NUMBERS
C
DATA MAP/3,B,C,0,D,0,E,0,F,G,H,0,I,J,K,0,L,0,0,M/
DATA (NAMES(1,I),I=1,3) /'ELTYPE1 ','ELTYPE2 ','ELTYPE3 '/
DATA (NAMES(2,I),I=1,B) . . .
DATA (NAMES(3,I),I=1,C) . . .
DATA (NAMES(5,I),I=1,D) . . .
DATA (NAMES(7,I),I=1,E) . . .
DATA (NAMES(9,I),I=1,F) /'ELTYPE4 ','--------','ELTYPE5 '/
DATA (NAMES(10,I),I=1,G) . . .
DATA (NAMES(11,I),I=1,H) . . .
DATA (NAMES(13,I),I=1,I) . . .
DATA (NAMES(14,I),I=1,J) . . .
DATA (NAMES(15,I),I=1,K) . . .
DATA (NAMES(17,I),I=1,L) . . .
DATA (NAMES(20,I),I=1,M) . . .
C
IERR=0
IF(IELVAR.LT.0) GOTO 9100
IF(IELVAR.EQ.0) IELVAR=1
IF( (IFGELT.LT.1).OR.(IFGELT.GT.20) ) GOTO 9100
NVARS = MAP(IFGELT)
IF( NVARS.EQ.0 ) GOTO 9100
IF( IELVAR.GT.NVARS ) GOTO 9100
IF( NAMES(IFGELT,IELVAR).EQ.'--------' ) THEN
IERR = 2
GOTO 9999
ENDIF
READ(NAMES(IFGELT,IELVAR),10) ELNAME(1),ELNAME(2)
10 FORMAT(2A4)
GOTO 9999
9100 IERR = 1
9999 CONTINUE
RETURN
END