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