Allocatable arrays and lower bounds

Unfortunately in Fortran, there isn’t really promotion or coercion. Effectively, every sub-expression is evaluated completely independently of anything with respect to any enclosing expression, including as @FortranFan pointed out that the LHS does not influence the RHS. Instead, the standard numeric operators and assignment are effectively generic interfaces such that integer + real has a specific procedure that gets called. It is inside these procedures that the “coercion” happens.