<Example Program>

Program merge_bits_example
  Integer,Parameter :: i8 = Selected_Int_Kind(2)
  Integer(i8) :: a = Int(z'f0',i8), b = Int(z'0f',i8)
  Print 1, a, b, Int(z'ff'), Merge_Bits(a,b,z'ff')
1 Format(1X, "Merge_Bits(z'",Z2.2,"','",Z2.2,"','",Z2.2,"') = z'",Z2.2,"'")
  Print 1, a, b, Int(z'00'), Merge_Bits(a,b,z'00')
  Print 1, a, b, Int(z'55'), Merge_Bits(a,b,z'55')
  Print 1, a, b, Int(z'ea'), Merge_Bits(a,b,z'ea')
End Program

Note: Execution Results

 Merge_Bits(z'F0','0F','FF') = z'F0'
 Merge_Bits(z'F0','0F','00') = z'0F'
 Merge_Bits(z'F0','0F','55') = z'5A'
 Merge_Bits(z'F0','0F','EA') = z'E5'