<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
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'