c user amplitude subroutine Subroutine vuamp( C passed in for information and state variables * ampName, time, ampValueOld, dt, nprops, props, nSvars, svars, * lFlagsInfo, nSensor, sensorValues, sensorNames, * jSensorLookUpTable, C to be defined * ampValueNew, * lFlagsDefine, * AmpDerivative, AmpSecDerivative, AmpIncIntegral) include 'vaba_param.inc' C svars - additional state variables, similar to (V)UEL dimension sensorValues(nSensor), svars(nSvars) dimension props(nprops) 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, * iStopAnalysis = 4, * nFlagsDefine = 4) parameter (one = 1.d0) dimension time(nTime), lFlagsInfo(nFlagsInfo), * lFlagsDefine(nFlagsDefine) dimension jSensorLookUpTable(*) C User code to compute ampValue = F(sensors) lFlagsDefine(iComputeDeriv) = 1 lFlagsDefine(iComputeSecDeriv) = 0 lFlagsDefine(iComputeInteg) = 0 if (ampName(1:8) .eq. 'LOADAMP2' ) then if (lFlagsInfo(iInitialization).eq.1) then ampValueNew = ampValueOld svars(1) = 0.0 AmpDerivative = one else c Example: f(t) = t tim = time(iStepTime) tStart = tim - dt tEnd = tim svars(1) = svars(1) + dt ampValueNew = svars(1) AmpDerivative = one c ampValueNew = tim C stop the analysis, if desired if (ampValueNew.gt.1000) lFlagsDefine(iStopAnalysis)=1 end if else if (ampName(1:7) .eq. 'LOADAMP' ) then if (lFlagsInfo(iInitialization).eq.1) then ampValueNew = ampValueOld svars(1) = 0.0 AmpDerivative = one else c Example: f(t) = t tim = time(iStepTime) tStart = tim - dt tEnd = tim svars(1) = svars(1) + dt c state variable with index 2 not used; updated only for c iluustrative purposes svars(2) = svars(2) + dt ampValueNew = svars(1) AmpDerivative = one c ampValueNew = tim C stop the analysis, if desired if (ampValueNew.gt.1000) lFlagsDefine(iStopAnalysis)=1 end if end if return end