To initialize the variables in a COMMON BLOCK we can use the BLOCK DATA construct. For example,
block data coeff_init integer :: n real, dimension(0:10) :: b common /coeff/ n, b data n /10/ data b /1.0000000000e+00, 1.0000000000e+00, 0.5000000000e+00, & 0.1666666667e+00, 4.1666666667e-02, 8.3333333333e-03, & 1.3888888889e-03, 1.9841269841e-04, 2.4801587302e-05, & 2.7557319224e-06, 2.7557319224e-07/ end block data coeff_init
initializes the elements of the (coeff) COMMON block variables to n=1, x(1) = 3.0, x(2) = 5.0. Note that a BLOCK DATA construct includes the COMMON block statement, and the definitions of the COMMON block variables; also, it contains the DATA statements, which initialize the variables with the prescribed values (i.e. at compile time the allocated memory slots for the specified variables are written with the given initial values).
The statement
save /coeff/makes the common block static storage; it will be kept in memory for the whole duration of the current execution (in practice most Fortran systems will automatically make all common blocks static, but we should not rely on this!).