SUBROUTINE VUAMP( * ampName, time, ampValueOld, dt, nprops, props, nSvars, * svars, lFlagsInfo, nSensor, sensorValues, sensorNames, * jSensorLookUpTable, * AmpValueNew, * lFlagsDefine, * AmpDerivative, AmpSecDerivative, AmpIncIntegral) INCLUDE 'VABA_PARAM.INC' C time indices parameter (iStepTime = 1, * iTotalTime = 2, * nTime = 2) C flags passed in for information parameter (iInitialization = 1, * iRegularInc = 2, * ikStep = 3, * nFlagsInfo = 3) C optional flags to be defined parameter (iComputeDeriv = 1, * iComputeSecDeriv = 2, * iComputeInteg = 3, * iStopAnalysis = 4, * iConcludeStep = 5, * nFlagsDefine = 5) dimension time(nTime), lFlagsInfo(nFlagsInfo), * lFlagsDefine(nFlagsDefine), * sensorValues(nSensor), * props(nprops), * sVars(nSvars) character*80 sensorNames(nSensor) character*80 ampName dimension jSensorLookUpTable(*) C Initialisierung character*256 jobOutDir, jobName, outputFile integer*4 lenJobOutDir, lenJobName if (lFlagsInfo(iInitialization) .eq. 1) then ampValueNew=0 C Erstellung einer Textdatei mit den beiden Spalten "time" und "ampValue" if (.TRUE.) then call vgetjobname(jobName, lenJobName) call vgetoutdir(jobOutDir, lenJobOutDir) outputFile = jobOutDir(1:lenJobOutDir)//'/'//jobName(1:lenJobName)//'_'//trim(ampName)//'.out' open(unit=105, file=outputFile, status='UNKNOWN') write(105,'(:,10A16)') 'time','ampValue' end if else C Amplitudensteuerung - Die Amplitude soll den Wert 100 annehmen, sobald C die TotalTime größer als 0.0015 ist. if (time(iTotalTime) .gt. 0.0015) then ampValueNew=100 end if C Die jeweiligen Werte in die Textdatei schreiben if (.TRUE.) then write(105,'(EN16.4, :,10F16.6)') & time(iTotalTime), ampValueNew end if end if RETURN END SUBROUTINE VUAMP