c     user amplitude subroutine
      Subroutine uamp(
C          passed in for information and state variables
     *     ampName, time, ampValueOld,  dt,  nSvars, svars, lFlagsInfo,
     *     nSensor, sensorValues, sensorNames, jSensorLookUpTable, 
C          to be defined
     *     ampValueNew, 
     *     lFlagsDefine,
     *     AmpDerivative, AmpSecDerivative, AmpIncIntegral, 
     *     AmpIncDoubleIntegral)
      
      include 'aba_param.inc'

C     svars - additional state variables, similar to (V)UEL
      dimension sensorValues(nSensor), svars(nSvars)
      character*80 sensorNames(nSensor)
      character*80 ampName

C     time indices
      parameter (iStepTime        = 1,
     *           iTotalTime       = 2,
     *           nTime            = 2)
C     flags passed in for information
      parameter (iInitialization   = 1,
     *           iRegularInc       = 2,
     *           nFlagsInfo        = 2)
C     optional flags to be defined
      parameter (iComputeDeriv       = 1,
     *           iComputeSecDeriv    = 2,
     *           iComputeInteg       = 3,
     *           iComputeDoubleInteg = 4,
     *           iStopAnalysis       = 5,
     *           iConcludeStep       = 6,
     *           nFlagsDefine        = 6)
      dimension time(nTime), lFlagsInfo(nFlagsInfo),
     *          lFlagsDefine(nFlagsDefine)
      dimension jSensorLookUpTable(*)

C     User code to compute  ampValue = F(sensors)
      if (ampName(1:8) .eq. 'LOADAMP2' ) then
         lFlagsDefine(iComputeDeriv)    = 1
         lFlagsDefine(iComputeSecDeriv) = 1
         lFlagsDefine(iComputeInteg)    = 1
         if (lFlagsInfo(iInitialization).eq.1) then 
            ampValueNew      = ampValueOld
            ampDerivative    = 0.0
            ampSecDerivative = 0.0
            ampIncIntegral   = 0.0
         else 
c           Example: f(t) = t
            tim = time(iStepTime)
            tStart = tim - dt
            tEnd   = tim 
            ampValueNew      = tim
            ampDerivative    = 1.0
            ampSecDerivative = 0.0

C           stop the analysis, if desired
            if (ampValueNew.gt.1000) lFlagsDefine(iStopAnalysis)=1
         end if
      end if 

      return
      end