<br><br><div class="gmail_quote">On Fri, May 6, 2011 at 5:55 PM, DJ Luscher <span dir="ltr"><<a href="mailto:djl@lanl.gov">djl@lanl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">Pearu Peterson <pearu.peterson <at> <a href="http://gmail.com" target="_blank">gmail.com</a>> writes:<br>
><br>
><br>
> Thanks for the bug report!These issues are now fixed in: <br>
<a href="https://github.com/numpy/numpy/commit/f393b604" target="_blank">https://github.com/numpy/numpy/commit/f393b604</a>  Ralf, feel free to apply this<br>
changeset to 1.6.x branch if appropriate.Regards,Pearu<br>
><br>
<br>
</div>Excellent! Thank you.<br>
<br>
I'll cautiously add another concern because I believe it is related.  Using<br>
f2py to compile subroutines where dimensions for result variable are derived<br>
from two argument usage of size of an assumed shape input variable does not<br>
compile for me.<br>
<br>
example:<br>
<foo_size.f90><br>
<br>
        subroutine trans(x,y)<br>
<br>
          implicit none<br>
<br>
          real, intent(in), dimension(:,:) :: x<br>
          real, intent(out), dimension( size(x,2), size(x,1) ) :: y<br>
<br>
          integer :: N, M, i, j<br>
<br>
          N = size(x,1)<br>
          M = size(x,2)<br>
<br>
          DO i=1,N<br>
            do j=1,M<br>
              y(j,i) = x(i,j)<br>
            END DO<br>
          END DO<br>
<br>
        end subroutine trans<br>
<br>
For this example the autogenerated fortran wrapper is:<br>
<m-f2pywrappers.f><br>
      subroutine f2pywraptrans (x, y, f2py_x_d0, f2py_x_d1)<br>
      integer f2py_x_d0<br>
      integer f2py_x_d1<br>
      real x(f2py_x_d0,f2py_x_d1)<br>
      real y(shape(x,-1+2),shape(x,-1+1))<br>
      interface<br>
      subroutine trans(x,y)<br>
          real, intent(in),dimension(:,:) :: x<br>
          real, intent(out),dimension( size(x,2), size(x,1) ) :: y<br>
      end subroutine trans<br>
      end interface<br>
      call trans(x, y)<br>
      end<br>
<br>
which (inappropriately?) translates the fortran SIZE(var,dim) into fortran<br>
SHAPE(var, kind).  Please let me know if it is poor form for me to follow on<br>
with this secondary issue, but it seems like it is related and a<br>
straight-forward fix.<br></blockquote><div><br>This issue is now fixed in<br><br>  <a href="https://github.com/numpy/numpy/commit/a859492c">https://github.com/numpy/numpy/commit/a859492c</a><br><br>I had to implement size function in C that can be called both as size(var) and size(var, dim).<br>
The size-to-shape mapping feature is now removed. I have updated the corresponding<br>release notes in<br><br><a href="https://github.com/numpy/numpy/commit/1f2e751b">https://github.com/numpy/numpy/commit/1f2e751b</a><br>
<br>Thanks for testing these new f2py features,<br>Pearu<br><br></div></div>