@mecej4 answered your question. Here is a program that lists the properties of real number systems for gfortran. The comments mention modifications needed to run it for other compilers.
program main ! compiles with gfortran
use iso_fortran_env, only: real_kinds
implicit none
character (len=20) :: fmt = "(7i10,3(1x,es0.4))"
real(kind=4) :: x4
real(kind=8) :: x8
real(kind=10) :: x10 ! ifort, flang, and nvfortran reject this
real(kind=16) :: x16 ! flang and nvfortran reject this
print "(a,*(1x,i0))","real_kinds =",real_kinds
print "(7a10,3a10)","kind","storage","digits","precision","range", &
"minexp","maxexp","epsilon","tiny","huge"
print fmt,4,storage_size(x4),digits(x4),precision(x4),range(x4),minexponent(x4), &
maxexponent(x4),epsilon(x4),tiny(x4),huge(x4)
print fmt,8,storage_size(x8),digits(x8),precision(x8),range(x8),minexponent(x8), &
maxexponent(x8),epsilon(x8),tiny(x8),huge(x8)
print fmt,10,storage_size(x10),digits(x10),precision(x10),range(x10),minexponent(x10), &
maxexponent(x10),epsilon(x10),tiny(x10),huge(x10)
print fmt,16,storage_size(x16),digits(x16),precision(x16),range(x16),minexponent(x16), &
maxexponent(x16),epsilon(x16),tiny(x16),huge(x16)
end program main
output:
real_kinds = 4 8 10 16
kind storage digits precision range minexp maxexp epsilon tiny huge
4 32 24 6 37 -125 128 1.1921E-7 1.1755E-38 3.4028E+38
8 64 53 15 307 -1021 1024 2.2204E-16 2.2251E-308 1.7977E+308
10 128 64 18 4931 -16381 16384 1.0842E-19 3.3621E-4932 1.1897E+4932
16 128 113 33 4931 -16381 16384 1.9259E-34 3.3621E-4932 1.1897E+4932