Hi:Not all compilers will flag this. I think the issue is that this array is only really used and allocated on the root processor for IO. Because all the processors list it as being an allocatable array it must be allocated on those processors as well. It is all right to allocate a small version of this array on those other processors. You would use a construct like this: if ( my_task == ioroot ) then allocate (TAVG_MOC_G(n_lat_aux_grid+1,km+1,n_moc_comp,n_transport_reg)) else allocate (TAVG_MOC_G(1, 1, 1, 1)) endif Could you try this and see if it works for your case? I believe there are other instances of this