1! { dg-do compile } 2 3! PR fortran/36167 4! This used to cause an ICE because of a missing array spec after interface 5! mapping. 6 7! Contributed by Frank Muldoon <fmuldoo@me.lsu.edu> 8 9module communication_tools 10 11contains 12!******************************************************************************* 13function overlap_1(u,lbound_u,ubound_u) 14!******************************************************************************* 15integer, intent(in), dimension(:) :: lbound_u,ubound_u 16real, intent(in), dimension(lbound_u(1):ubound_u(1),lbound_u(2):ubound_u(2),& 17 lbound_u(3):ubound_u(3)) :: u 18 19real, dimension(& 20lbound(u,1):ubound(u,1),& 21lbound(u,2):ubound(u,2),& 22lbound(u,3):ubound(u,3)) :: overlap_1 23 24return 25end function overlap_1 26 27end module communication_tools 28 29!******************************************************************************* 30subroutine write_out_particles 31!******************************************************************************* 32 33use communication_tools 34real, dimension(1:5, 2:4, 3:10) :: vorticityMag 35real, allocatable, dimension(:,:,:) :: temp3d 36 37allocate(temp3d( & 38lbound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),1):& 39ubound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),1),& 40lbound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),2):& 41ubound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),2),& 42lbound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),3):& 43ubound(overlap_1(vorticityMag,lbound(vorticityMag),ubound(vorticityMag)),3))) 44 45return 46end subroutine write_out_particles 47