    PROGRAM sdTestBLAS
      USE set_precision, ONLY : dkind, skind
      USE sdTestMod, ONLY: runSpTests, runDpTests
      USE checkTests, ONLY: setOutputLevel, setJustValues, &
                            outputNoOfFails, zeroTestCounts

      REAL(skind) :: snrm2, scnrm2
      REAL(dkind) :: dnrm2, dznrm2
      EXTERNAL :: dnrm2, snrm2, scnrm2, dznrm2

! Output header to identify output
      WRITE(*,'(A)') '*************************************************'
      WRITE(*,'(A)') 'Output from nrm2 test suite using '// &
       & 'a user supplied, pre-compiled, BLAS library'
      WRITE(*,'(A)') '*************************************************'
      WRITE(*,'(A)') ''

! Run the full tests for test coverage for the single
! precision implementation
      CALL zeroTestCounts
! The amount of output generated may be controlled by
! setting the output level here:
! 1: Detailed; 2: Intermediate; 3: Concise;
! see user manual for more details
! The default is 3 which we opt for here.
!      CALL setOutputLevel(2)
      CALL setJustValues(.FALSE.)
      WRITE (*, '(''Single Precision Test Results'')')
      WRITE (*, '(''-----------------------------'')')
      CALL runSpTests(snrm2, scnrm2)
      CALL outputNoOfFails

! Run the full tests for test coverage for the double
! precision implementation
      CALL zeroTestCounts
! The amount of output generated may be controlled by
! setting the output level here:
! 1: Detailed; 2: Intermediate; 3: Concise;
! see user manual for more details
! The default is 3 which we opt for here.
!      CALL setOutputLevel(2)
      CALL setJustValues(.FALSE.)
      WRITE (*, '(''Double Precision Test Results'')')
      WRITE (*, '(''-----------------------------'')')
      CALL runDpTests(dnrm2, dznrm2)
      CALL outputNoOfFails

    END PROGRAM sdTestBLAS
