I think this is correct, except I think the final END is not needed. I am currently using 2 subroutines (SDVINI and UMAT) and the syntax is:
SUBROUTINE SDVINI(STATEV,COORDS,NSTATV,NCRDS,NOEL,NPT,
LAYER,KSPT)
.........
RETURN
END
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD...