A fortran bug? (or at least a not well documented limitation)

Since I spent a significant amount of time, searching for the problem that was causing one of my fortran codes, I think that commenting these things may help others. I was using a call like this: CALL fn(xtmp,xf1,force) in which fn was an external defined as lorenz96ss which was calling to a subroutine with assumed shape dummy arrays: subroutine lorenz96ss(yin,yout,xin) real(8),intent(in) :: yin(:),xin(:) real(8),intent(inout) :: yout(:) This does not work!!!!!! (fortran 2003 cannot manage the array dimensions in this case) One has to define them explicitly: CALL fn(nx,ny ,xtmp,xf1,force) subroutine lorenz96ss(ny,nx,yin,yout,xin) integer, intent(in) :: nx,ny real(8),intent(in) :: yin(ny),xin(nx) real(8),intent(inout) :: yout(ny)