2       SUBROUTINE xerprn (PREFIX, NPREF, MESSG, NWRAP)
 
   78       CHARACTER*(*) PREFIX, MESSG
 
   84       INTEGER N, I1MACH, I, LPREF, LWRAP, LENMSG, NEXTC
 
   85       INTEGER LPIECE, IDELTA
 
   95          IF (iu(i) .EQ. 0) iu(i) = n
 
  102       IF ( npref .LT. 0 ) 
THEN 
  107       lpref = min(16, lpref)
 
  108       IF (lpref .NE. 0) cbuff(1:lpref) = prefix
 
  113       lwrap = max(16, min(132, nwrap))
 
  120          IF (messg(lenmsg:lenmsg) .NE. 
' ') 
GO TO 30
 
  127       IF (lenmsg .EQ. 0) 
THEN 
  128          cbuff(lpref+1:lpref+1) = 
' ' 
  130             WRITE(iu(i), 
'(A)') cbuff(1:lpref+1)
 
  173    50 lpiece = index(messg(nextc:lenmsg), newlin)
 
  174       IF (lpiece .EQ. 0) 
THEN 
  179          lpiece = min(lwrap, lenmsg+1-nextc)
 
  180          IF (lpiece .LT. lenmsg+1-nextc) 
THEN 
  181             DO 52 i=lpiece+1,2,-1
 
  182                IF (messg(nextc+i-1:nextc+i-1) .EQ. 
' ') 
THEN 
  189    54    cbuff(lpref+1:lpref+lpiece) = messg(nextc:nextc+lpiece-1)
 
  190          nextc = nextc + lpiece + idelta
 
  191       ELSEIF (lpiece .EQ. 1) 
THEN 
  198       ELSEIF (lpiece .GT. lwrap+1) 
THEN 
  204          DO 56 i=lpiece+1,2,-1
 
  205             IF (messg(nextc+i-1:nextc+i-1) .EQ. 
' ') 
THEN 
  211    58    cbuff(lpref+1:lpref+lpiece) = messg(nextc:nextc+lpiece-1)
 
  212          nextc = nextc + lpiece + idelta
 
  219          cbuff(lpref+1:lpref+lpiece) = messg(nextc:nextc+lpiece-1)
 
  220          nextc  = nextc + lpiece + 2
 
  226          WRITE(iu(i), 
'(A)') cbuff(1:lpref+lpiece)
 
  229       IF (nextc .LE. lenmsg) 
GO TO 50
 
subroutine xerprn(PREFIX, NPREF, MESSG, NWRAP)
 
subroutine xgetua(IUNITA, N)
 
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx