      Subroutine NodeDisp(nin)

      USE WINTERACTER
      USE BLK1MOD
!
      include 'd.inc'
!      INCLUDE 'BLK1.COM'

      INCLUDE 'TXFRM.COM'
!IPK MAY02       COMMON  /TXFRM/  XS, YS, TXSCAL 
!
!
! Declare window-type and message variables
!
      TYPE(WIN_STYLE)    :: WINDOW

      TYPE(WIN_MESSAGE) :: MESSAGE
      
      INTEGER            :: N,IBOX,NN
      INTEGER           :: IERR
      CHARACTER*1       :: IFLAG
      
      if(nin .eq. 0) then
	    n=1
	  else
	    n=nin
	  endif
      ims=0    
  100 continue
      call wdialogload(IDD_NODEDATA)
      ierr=infoerror(1)

      CALL WDialogPutInteger(IDF_INTEGER1,N)
      NN=N
      XTEMP=XUSR(N)
      YTEMP=YUSR(N)
      WDTEMP=WIDTH(N)
      CALL WDialogPutReal(IDF_REAL1,XTEMP,'(F10.2)')
      CALL WDialogPutReal(IDF_REAL2,YTEMP,'(F10.2)')
      CALL WDialogPutReal(IDF_REAL3,WD(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL4,WDTEMP,'(F10.2)')
      CALL WDialogPutReal(IDF_REAL5,SS1(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL6,SS2(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL7,WIDS(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL8,WIDBS(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL9,SSO(N),'(F10.2)')
      CALL WDialogPutReal(IDF_REAL10,BS1(N),'(F10.4)')
      IF(LOCK(N) .NE. 0) then
        CALL WDialogPutCheckBox(IDF_CHECK1,1)
      ELSE
        CALL WDialogPutCheckBox(IDF_CHECK1,0)
      ENDIF

      CALL WDialogSelect(IDD_NODEDATA)
      ierr=infoerror(1)

      CALL WDialogShow(-1,-1,0,Modeless)
      ierr=infoerror(1)

      if(ims .eq. 1 .or. nin .gt. 0) go to 200
  150 CONTINUE
      call wdialogload(IDD_SELNODE)
      ierr=infoerror(1)

      CALL WDialogPutInteger(IDF_INTEGER1,N)

      CALL WDialogSelect(IDD_SELNODE)
      ierr=infoerror(1)

      CALL WDialogShow(-1,-1,0,ModaL)
      ierr=infoerror(1)

      do  
        IF (WInfoDialog(ExitButton) .EQ. IDOK) THEN
          CALL WDialogGetInteger(IDF_INTEGER1,N)
          ims=1
          go to 100
        endif
!ipk sep02
        ims=1
        go to 100
      enddo

  200 continue
!      CALL WDialogSelect(IDD_NODEDATA)
!      ierr=infoerror(1)
!  Branch depending on type of message.
!
!        CALL WDialogGetInteger(IDF_INTEGER1,N)
!        WRITE(90,*) 'IN NODEDISP N,NN', N,NN
!        IF(N .NE. NN) go to 100

      DO 
!WHILE(.NOT.QUIT)
          CALL WMessage(ITYPE,MESSAGE)
          SELECT CASE (ITYPE)
            CASE (PushButton)
               IF(MESSAGE%VALUE1.EQ.IDOK) THEN
                 CALL WDialogGetInteger(IDF_INTEGER1,N)
                 CALL WDialogGetReal(IDF_REAL1,XTEMP)
                 CALL WDialogGetReal(IDF_REAL2,YTEMP)
                 XUSR(N)=XTEMP
                 YUSR(N)=YTEMP
                 CALL WDialogGetReal(IDF_REAL3,WD(N))
                 CALL WDialogGetReal(IDF_REAL4,WDTEMP)
                 CALL WDialogGetReal(IDF_REAL5,SS1(N))
                 CALL WDialogGetReal(IDF_REAL6,SS2(N))
                 CALL WDialogGetReal(IDF_REAL7,WIDS(N))
                 CALL WDialogGetReal(IDF_REAL8,WIDBS(N))
                 CALL WDialogGetReal(IDF_REAL9,SSO(N))
                 CALL WDialogGetReal(IDF_REAL10,BS1(N))
                 CORD(N,1)=(XUSR(N)+XS)/TXSCAL
                 CORD(N,2)=(YUSR(N)+YS)/TXSCAL
                 call WDialogHide()
                 call wdialogUNload()
                 WIDTH(N)=WDTEMP
                 RETURN
               ELSEIF(MESSAGE%VALUE1.EQ.IDNEXT) THEN
                 CALL WDialogGetInteger(IDF_INTEGER1,N)
                 CALL WDialogGetReal(IDF_REAL1,XTEMP)
                 CALL WDialogGetReal(IDF_REAL2,YTEMP)
                 XUSR(N)=XTEMP
                 YUSR(N)=YTEMP
                 CALL WDialogGetReal(IDF_REAL3,WD(N))
                 CALL WDialogGetReal(IDF_REAL4,WDTEMP)
                 CALL WDialogGetReal(IDF_REAL5,SS1(N))
                 CALL WDialogGetReal(IDF_REAL6,SS2(N))
                 CALL WDialogGetReal(IDF_REAL7,WIDS(N))
                 CALL WDialogGetReal(IDF_REAL8,WIDBS(N))
                 CALL WDialogGetReal(IDF_REAL9,SSO(N))
                 CALL WDialogGetReal(IDF_REAL10,BS1(N))
                 CORD(N,1)=(XUSR(N)+XS)/TXSCAL
                 CORD(N,2)=(YUSR(N)+YS)/TXSCAL
                 WIDTH(N)=WDTEMP
                 GO TO 150
               ELSEIF(MESSAGE%VALUE1.EQ.IDCANCEL) THEN
                 call WDialogHide()
                 call wdialogUNload()
                 RETURN
               ENDIF
          END SELECT
      END DO



      RETURN
      END
 
   