character*3 str
str='ABC'
print *,str(1:1)
とすると、Aが出力されますが、

character*3 str(1)
str(1)='ABC'
print *,str(1:1)
とすると、ABCが出力されます。

これはどういう仕組みでこうなるんでしょうか?
characterは文字の配列で実現されているんですよね?