      SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION U(3),TIME(2),COORDS(3)
      CHARACTER*80 CNAME
C
C THE PRIMARY FUNCTION IS F(T)=1.5 SIN(OMEGA T) + .5 COS(OMEGA T)
C WHERE OMEGA IS .1 PI AND T THE CURRENT TIME.
C THE APPROPRIATE INTEGRALS AND DERIVATIVES ARE COMPUTED ACCORDINGLY.
C
      OMEGA=.314159
      AOMGT=OMEGA*TIME(2)
      CS=COS(AOMGT)
      SN=SIN(AOMGT)
      AN=.5
      BN=1.5
C
      JRCD = 0
      JTYP = 0
      NODELOC = 0
      CNAME = ' '
      CALL GETPARTINFO(NODE,JTYP,CNAME,NODELOC,JRCD)
C
      IF (CNAME(1:5).EQ.'TRUSS') THEN
         IF(NODELOC.EQ.3.AND.JDOF.EQ.1) THEN
C     THE FUNCTION IS DISPLACEMENT FOR NODE "TRUSS.3"
C     (DIFFERENTIATE FOR VEL AND ACC)
            U(1)=AN*CS+BN*SN
            U(2)=OMEGA*(-AN*SN+BN*CS)
            U(3)=-OMEGA**2*(AN*CS+BN*SN)
         ELSE IF(NODELOC.EQ.5.AND.JDOF.EQ.1) THEN
C     THE FUNCTION IS VELOCITY FOR NODE "TRUSS.5" (INTEGRATE FOR DISP,
C     DIFFERENTIATE FOR ACCELERATION)
            U(1)=(AN*SN+BN*(1.0-CS))/OMEGA
            U(2)=AN*CS+BN*SN
            U(3)=OMEGA*(-AN*SN+BN*CS)
         ELSE IF(NODELOC.EQ.7.AND.JDOF.EQ.1) THEN
C     THE FUNCTION IS ACCELERATION FOR NODE "TRUSS.7"
C     (INTEGRATE FOR DISP AND VELOCITY)
            U(1)=(AN*(1.0-CS)+BN*(AOMGT-SN))/OMEGA**2
            U(2)=(AN*SN+BN*(1.0-CS))/OMEGA
            U(3)=AN*CS+BN*SN
         ENDIF
      ENDIF
C
      RETURN
      END



