C C User subroutine vumatht subroutine vumatht ( C Read only (unmodifiable) variables - * nblock, nElem, nIntPt, nLayer, nSectPt, * ntgrad, nstatev, nfieldv, nprops, * cmname, stepTime, totalTime, dt, * coordMp, density, props, * tempOld, fieldOld, stateOld, enerThermOld, * tempNew, tempgradNew, fieldNew, C Write only (modifiable) variables - * stateNew, fluxNew, enerThermNew, dEnerThDTemp, condEff ) C include 'vaba_param.inc' C dimension nElem(nblock) C dimension coordMp(nblock,*), density(nblock), props(nprops), * tempOld(nblock), fieldOld(nblock, nfieldv), * stateOld(nblock, nstatev), enerThermOld(nblock), * tempNew(nblock), tempgradNew(nblock, ntgrad), * fieldNew(nblock, nfieldv), stateNew(nblock, nstatev), * fluxNew(nblock, ntgrad), enerThermNew(nblock), * dEnerThDTemp(nblock,2), condEff(nblock) C character*80 cmname * parameter ( zero = 0.d0 ) parameter ( tempZero = 0.d0) * properties * 1. conductivity * 2. specific heat * cond = props(1) specHeat = props(2) * do km = 1, nblock * * update heat flux vector do i = 1, ntgrad fluxNew(km, i) = -cond*tempgradNew(km,i) end do condEff(km) = cond * * update internal thermal energy and its derivatives if (totalTime .eq. zero) then dEnerTh = specHeat*(tempNew(km) - tempZero) else dEnerTh = specHeat*(tempNew(km) - tempOld(km)) end if enerThermNew(km) = enerThermOld(km) + dEnerTh dEnerThDTemp(km,1) = specHeat dEnerThDTemp(km,2) = zero end do * return end