anchor.diff:          ! prm file
           iarg = iarg + 1
           call read_opt_arg(iarg,nargs,rst_file,err)
  -        if (err == 1) then
  +        if (err == 2) then
              write(0,*) 'ERROR ! missing argument: '//trim(arg)//' <filename>'
  +           stop
  +        end if
  +     case('-d', '--digits')
  +        ! the number of digits to the right of the decimal point
  +        ! default: print with full precision
  +        iarg = iarg + 1
  +        call read_opt_arg(iarg,nargs,n_digits,err)
  +        if (err == 2) then
  +           write(0,*) 'ERROR ! missing argument: '//trim(arg)//' <n>'
              stop
           end if
        case default
  
positive.code:      end do
    end if
    k = 0
    do iv = 1,nvars
       do is = 1,nclasses
          k = k + 1
          write(*,'(i3,1x,i2,1x,f8.4)') iv,is,prm(k)
       end do
    end do
    do jv = 1,nvars-1
       do iv = jv+1,nvars
          do js = 1,nclasses
             do is = 1,nclasses
                k = k + 1
                ! order is inverted for printing 
                write(*,'(2(i3,1x),2(i2,1x),f8.4)') jv,iv,js,is,prm(k)
             end do
          end do
       end do
    end do
  
  
negative.code:   character(len=long_string_size) :: syntax = 'syntax'
    character(len=long_string_size) :: rst_file
    integer :: iv,jv,is,js,k
    integer :: n_digits = -1
    character(len=1) :: protein_alphabet(21) = &
         ['A','C','D','E','F','G','H','I','K',&
         'L','M','N','P','Q','R','S','T','V','W','Y','-']
    character(len=1) :: nuc_acid_alphabet(6) = &
         ['A','C','G','T','U','-']
    character(len=long_string_size) :: frmt
    
    ! read arguments
    call get_command(cmd)
  