No. Something like "allocate(integer :: i(10), r(10))" where
integer,allocatable :: i(:)
real,allocatable :: r(:)
Just noting that other ALLOCATE(3f) statements do produce an error when a type-spec is present, but the one in the example code does not.
Well, the first allocate you showed (allocate (character(30) :: ... ) allocates two character arrays, the type specification is for the length of the character strings, but each array is of the same basic type. That is not the case with the second one: you specify the type as integer, but the second array is a real array, so a different basic type.
Readers are encouraged to read this thread at Fortran Discourse site.
I do wish OP had gone with a really short illustration of the issue e.g.,
character(len=:), allocatable :: s integer, allocatable :: i allocate( character :: s, i ) end
Intel team: please note a support request #05231947 has already been submitted with this short case at the Intel OSC.