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) C character*80 sensorNames 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(*) parameter(timeStarSecStep = 1.0d0) C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C User code to compute ampValue = F(sensors) C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ c get sensor values first iR_VR3 = ivGetSensorID('SensorVR3', jSensorLookUpTable) valueR_VR3 = sensorValues(iR_VR3) if (lFlagsInfo(iInitialization).eq.1) then ampValueNew = 2407. else c ampValueNew = 1. + sqrt(valueR_VR3) ampValueNew = (4E-12 * (valueR_VR3)^6) - (8E-09 * (valueR_VR3)^5) + (6E-06 * (valueR_VR3)^4) - (0,0017 * (valueR_VR3)^3) + (0,251 * (valueR_VR3)^2) - (13,84 * (valueR_VR3)) + 2407,4 endif write (6,*)'rps=', valueR_VR3,'amp=',ampValueNew return end