function value = c8mat_norm_fro ( m, n, a )

%*****************************************************************************80
%
%% c8mat_norm_fro() returns the Frobenius norm of an M by N matrix.
%
%  Discussion:
%
%    The Frobenius norm is defined as
%
%      C8MAT_NORM_FRO = sqrt (
%        sum ( 1 <= I <= M ) Sum ( 1 <= J <= N ) |A(I,J)|^2 )
%
%    The matrix Frobenius-norm is not derived from a vector norm, but
%    is compatible with the vector L2 norm, so that:
%
%      c8vec_norm_l2 ( A*x ) <= c8mat_norm_fro ( A ) * c8vec_norm_l2 ( x ).
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    26 October 2021
%
%  Author:
%
%    John Burkardt
%
%  Input:
%
%    integer M, the number of rows in A.
%
%    integer N, the number of columns in A.
%
%    complex A(M,N), the matrix.
%
%  Output:
%
%    real VALUE, the Frobenius norm of A.
%
  value = sqrt ( sum ( sum ( ( abs ( a(1:m,1:n) ) ).^2 ) ) );

  return
end
