C23456789012345678901234567890123456789012345678901234567890123456789012
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C                                                                      C
C SUBROUTINE NODINP                                                    C
C                                                                      C
C                                                                      C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
      SUBROUTINE NODINP(NUMNP,ID,IBC,MXDOFDIM,MCRD,COORD,NDOFN,NEQ,IIN,
     1                  IOUT)
C
      IMPLICIT REAL*8 (A-H,O-Z)
C
      DIMENSION ID(MXDOFDIM,NUMNP),COORD(MCRD,NUMNP),NDOFN(NUMNP),
     1          IBC(MXDOFDIM,NUMNP)
C
      CALL CLEAR(COORD,MCRD,NUMNP)
      CALL CLEARIM(ID,MXDOFDIM,NUMNP)
      CALL CLEARIM(IBC,MXDOFDIM,NUMNP)
C
C     READ AND GENERATE NODAL POINT DATA
C
      WRITE(IOUT,1000)
      WRITE(IOUT,1005)
C
      DO I=1,NUMNP
        READ(IIN,     *) N,NDOFN(N),(ID(II,I),II=1,NDOFN(N)),
     1  (COORD(JJ,I),JJ=1,MCRD)
cc        WRITE(IOUT,1010)N,NDOFN(N),(IBC(II,I),II=1, MXDOFDIM),
cc     1  (COORD(JJ,I),JJ=1,MCRD)
      END DO
C
      ICOUNT=1
      DO K1=1,NUMNP
        NDOF=NDOFN(K1)
        DO K2=1,NDOFN(K1)
           IF(ID(K2,K1).EQ.0) THEN
              ID(K2,K1)=ICOUNT
              ICOUNT=ICOUNT+1
           ELSE
              ID(K2,K1)=0
           END IF
        END DO
      END DO
      NEQ=ICOUNT-1
C
C     WRITE EQUATION NUMBERS
C
      WRITE(IOUT,1020)
      WRITE(IOUT,1025)
      WRITE(IOUT,1030) (N,(ID(I,N),I=1,MXDOFDIM),N=1,NUMNP)
C
 1000 FORMAT(//,6X,' N O D A L  D A T A',//)
 1005 FORMAT('ID',2X,'NDOF',2X,'BC-X',2X,'BC-Y',2X,'BC-R',
     1        6X,'COORD-X',6X,'COORD-Y',/)
 1010 FORMAT(I3,X,I2,4X,I2,4X,I2,4X,I2,6X,F5.2,6X,F5.2)
 1020 FORMAT(/,'E Q U A T I O N  N U M B E R S',/)
 1025 FORMAT(/,'NODE',6X,'DEGREES OF FREEDOM',/,
     1      'NUMBER',8X,'U',9X,'V',9X,'R'/)
 1030 FORMAT(I5,5X,I5,5X,I5,5X,I5)
C
      RETURN
C
      END
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C                                                                      C
C SUBROUTINE MATINP                                                    C
C                                                                      C
C                                                                      C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
      SUBROUTINE MATINP(NUMAT,NMPR,AMATE,NMATP,IIN,IOUT)
C
      IMPLICIT REAL*8 (A-H,O-Z)
C
      DIMENSION AMATE(NMPR,NUMAT),NMATP(NUMAT)
C
      CALL CLEAR(AMATE,NMPR,NUMAT)
C
C     READS AND GENERATES MATERIAL DATA
C
      WRITE (IOUT,1000)
      DO I=1,NUMAT
        READ  (IIN, *) N,NMATP(N),(AMATE(JJ,N),JJ=1,NMATP(N))
        WRITE (IOUT,3020) N,NMATP(N),(AMATE(JJ,N),JJ=1,NMATP(N))
      END DO
C
 1000 FORMAT(//,4X,'M A T E R I A L  D A T A',/)
 3020 FORMAT(I5,3X,I5,12X,6(5X,F13.3))
C
      RETURN
C
      END
C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C                                                                      C
C     SUBROUTINE ELEINP                                                C
C                                                                      C
C                                                                      C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
C
      SUBROUTINE ELEINP(NUMNP,NUMEL,NNE,IELT,NDOFEL,NMNE,MATP,IELCON,
     1                  IIN,IOUT)
C
      IMPLICIT REAL*8 (A-H,O-Z)
C
      DIMENSION NNE(NUMEL),IELT(NUMEL),MATP(NUMEL),IELCON(NMNE,NUMEL),
     1          NDOFEL(NUMEL)
C
C     Creates IELCON()
C
      WRITE(IOUT,1000)
      DO I=1,NUMEL
        READ(IIN,*) M,IELT(M),NDOFEL(M),MATP(M),NNE(M),
     1  (IELCON(J,M),J=1,NNE(M))
        WRITE(IOUT,1010) M,IELT(M),NDOFEL(M),MATP(M),NNE(M),
     1  (IELCON(J,M),J=1,NNE(M))
      END DO
C
 1000 FORMAT(///,8X,'E L E M E N T  I N F O R M A T I O N',//)
 1010 FORMAT(5(2X,I2),X,8(2X,I3))
C
      RETURN
C
      END
C
