11-108 To: J3 From: Nick Maclaren Subject: Interop TR: dim member validity Date: 2011 January 20 Reference: 10-251.pdf, 10-235 This issue was raised in 10-235, but there are no minutes of the subgroup, so I do not know what happened and what decisions were taken. Because of that, this merely raises the issue and provides no edits. Even if the approach in 10-235 is not taken, the issue of constraints on what dim values can be passed from C to Fortran needs to be resolved. As I understand it, the constraints on the extent and sm fields are as I described in 10-235: All strides in the bounds array shall be non-zero. There shall be a reordering of the dimensions such that the absolute value of the stride of one dimension is not less than the absolute value of the stride of the previous dimension multiplied by the extent of the previous dimension. There is nothing in 10-251.pdf/N1838.pdf that requires that. It does not even require distinct elements not to alias each other, as in: elem_len = 1 dim[0].extent = 100 dim[0].sm = 2 dim[1].extent = 100 dim[2].sm = 5 A nastier case is descriptors where no elements overlap but dimensions do - which begs the question of whether Fortran compilers should be required to accept such descriptors, diagnose them, or what? For example: elem_len = 8 dim[0].extent = 10 dim[0].sm = 88 dim[1].extent = 10 dim[2].sm = 104