Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-13 - profil.for
There are 2 other files named profil.for in the archive. Click here to see a list.
	program Profilometer


c---
c  variable declarations  ( Group screen )

        Integer GRow, GCol, GCurField, GTermKeys(30)
        Integer GNumberOfFields, GLastKey
        Logical GNext, GPrevious, GExit, GRefresh

        character* 4    Version
        character* 9    Date
        character* 6    GroupID
        character* 3    Operator
        character*65    Description
        integer         ScanRate
        character* 6    StageVelocity


c---
c  variable declarations  ( Specimen screen )

        Integer SRow, SCol, SCurField, STermKeys(30)
        Integer SNumberOfFields, SLastKey
        Logical SNext, SPrevious, SExit, SRefresh

        character* 6    SpecimenID
        character*12    Orientation


c---
c Misc variables
	integer Abort
	logical More

c---
c Variable initialization

	data Abort /141/

	data GRow /1/ , GCol /1/ , SRow /11/ , SCol /39/

c---
c immediate termination on F1 key
        data GTermKeys/ 0, 1, 141, 27*0 /

        data STermKeys/ 30*0 /



        Version = '1.00'
        call Today( Date )
        GroupID = ' '
        Operator = ' '
        Description = ' '
        ScanRate = -1
        StageVelocity = '1.0'
	SpecimenID = ' '
	Orientation = 'Transverse'


c---
c Total number of screen parameters

        GNumberOfFields =   7

        SNumberOfFields =   2


c--	Initialize Terminal Routines
	call TTYinit
	call EchoOff
	call KpdOn


c--	Display Specimen Group Information

	GCurField = 3

100     call GroupClear( GRow, GCol )

        call GroupTextDsp( GRow, GCol )

        call GroupDataDsp( GRow, GCol
     1 , Version, Date, GroupID, Operator, Description, ScanRate
     1 , StageVelocity
     1   )


c--	repeat
200	continue

c--	  Get Specimen Group Information

300       call GroupEdit( GRow, GCol, GCurField, GTermKeys
     1   , Version, Date, GroupID, Operator, Description, ScanRate
     1   , StageVelocity
     1   , GNext, GPrevious, GExit, GRefresh, GLastKey )

	  if( GLastKey .eq. Abort ) then
	    call KpdOff
	    call ClrScr
	    stop '[Program Aborted]'

	  else if( GNext ) then
	    GCurField = 3

	  else if( GPrevious ) then
	    GCurField = GNumberOfFields

	  else if( GRefresh ) then
	    goto 100

	  end if


	  if( .not. GExit ) goto 300

390	  SCurField = 1

c--	  repeat
400	  continue

c--	    Display and get Specimen Information

            call SpecClear( SRow, SCol )

            call SpecTextDsp( SRow, SCol )

            call SpecDataDsp( SRow, SCol
     1     , SpecimenID, Orientation
     1       )

500         call SpecEdit( SRow, SCol, SCurField, STermKeys
     1     , SpecimenID, Orientation
     1     , SNext, SPrevious, SExit, SRefresh, SLastKey )

            if( SNext ) then
	      SCurField = 1

	    else if( SPrevious ) then
	      SCurField = SNumberOfFields

	    else if( SRefresh ) then
              call GroupClear( GRow, GCol )
              call GroupTextDsp( GRow, GCol )
              call GroupDataDsp( GRow, GCol
     1       , Version, Date, GroupID, Operator, Description, ScanRate
     1       , StageVelocity
     1         )
	      goto 400

	    end if


	    if( .not. SExit ) goto 500

c--	    Collect and Plot Test Data
	    call DoTest

c--	    More Specimens?
	    call MoreSpecs( More )

c--	      if Yes then Display Specimen Group Information
	      if( More ) then
                call GroupClear( GRow, GCol )
                call GroupTextDsp( GRow, GCol )
                call GroupDataDsp( GRow, GCol
     1         , Version, Date, GroupID, Operator, Description, ScanRate
     1         , StageVelocity
     1           )
	      end if

c--	  until no more specimens
	  if( More ) goto 390

c--	  Another Specimen Group?
	  call MoreGroups( More )

c--	until no more specimen groups
	if( More ) goto 100


	call KpdOff
	call ClrScr
	stop '[Normal Program Termination]'

c--	program end
	end