I just tried this on one of my own user elements with utx(1). And it seems to work just fine. It properly prints the name assigned in utx(1) and not USER etc. Also, I notice that you say umac2.h in your message. It should be umac1.h.
Here is some of my element code:
implicit none
include 'eldata.h'
include 'iofile.h'
include 'strnum.h'
include 'umac1.h'
integer :: ndf,ndm,nst,isw
integer :: ix(*)
real (kind=8) :: d(*),ul(ndf,*),xl(ndm,*),tl(*),s(nst,*),p(*)
integer :: i
! Set material reference name
if( isw.lt.0 ) then
utx(1) = 'solid_piezo' ! 15 character naming option
! ! Access: MATErial "ma"
! ! solid_piezo (instead of USER 11)
! Report element type on command "show,elem"
elseif( isw.eq.0 ) then
write(iow,2000)
if(ior.lt.0) write(*,2000)
! Input material property data and set plot sequence for 8-node brick
elseif( isw.eq.1 ) then