in a F90 routine called from python the present() test (for optional parameters) always returns true whether the parameter is present in the function call or not. My F90 test code looks like this
subroutine test(test1,test2,test3) integer,intent(in) :: test1 integer,intent(in),optional :: test2 integer,intent(inout),optional :: test3 write (*,*) test1,present(test2),present(test3) if (present(test2)) write (*,*) 'test2',test2 if (present(test3)) then write (*,*) 'test3',test3 test3=5 end if end subroutine test The output from python calls to this routine (its inside a module tsdtm.tsg ... just to explain why the function looks like it does). I have just created this with f2py automatically generating the interface with no hand modification of the interfaces. What this test shows is that present() always returns true no matter (1) the intent (2) whether the parameter is present in the call, or (3) the type of the parameter (real, integer ... though I haven't tested arrays etc) as well. Secondly I can't see how to get the returned value of 'test3'. It doesn't seem to be returned as a result of the function? The docs say f2py handles optional parameters and other than present () my testing suggests that optional parameters seem otherwise OK. I'm on Mac OSX and using numpy 1.0.3. Any thoughts? >>> print tsimdtm.tsg.test.__doc__ test - Function signature: test(test1,[test2,test3]) Required arguments: test1 : input int Optional arguments: test2 : input int test3 : in/output rank-0 array(int,'i') >>> tsimdtm.tsg.test(1) 1 T T test2 0 test3 0 >>> tsimdtm.tsg.test(1,2) 1 T T test2 2 test3 0 >>> tsimdtm.tsg.test(1,2,3) 1 T T test2 2 test3 3 >>> tsimdtm.tsg.test(1,test2=2) 1 T T test2 2 test3 0 >>> tsimdtm.tsg.test(1,test3=3) 1 T T test2 0 test3 3 >>> tsimdtm.tsg.test(1,test2=2,test3=3) 1 T T test2 2 test3 3 ==================================================================== Prof Garry Willgoose, Australian Professorial Fellow in Environmental Engineering, Director, Centre for Climate Impact Management (C2IM), School of Engineering, The University of Newcastle, Callaghan, 2308 Australia. Centre webpage: www.c2im.org.au Phone: (International) +61 2 4921 6050 (Tues-Fri AM); +61 2 6545 9574 (Fri PM-Mon) FAX: (International) +61 2 4921 6991 (Uni); +61 2 6545 9574 (personal and Telluric) Env. Engg. Secretary: (International) +61 2 4921 6042 email: [EMAIL PROTECTED]; [EMAIL PROTECTED] email-for-life: [EMAIL PROTECTED] personal webpage: www.telluricresearch.com/garry ==================================================================== "Do not go where the path may lead, go instead where there is no path and leave a trail" Ralph Waldo Emerson ==================================================================== _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion