On Jun 1, 2012, at 1:34 PM, Blaise Bourdin wrote: > > On Jun 1, 2012, at 12:47 PM, Barry Smith wrote: > >> >> On Jun 1, 2012, at 12:37 PM, Blaise Bourdin wrote: >>> >>> What compiler is this? I don't have access to any solaris box, and have >>> pretty bad memories of sun's fortran compilers. My understanding of the C >>> interoperability is that these are perfectly legal look at the example at >>> http://fortranwiki.org/fortran/show/c_loc >>> >>> I pushed a change to bagenum.F Could you have a look and see if you get the >>> same error in PetscBagRegisterEnum? >>> >>> Also, this binding needs an explicit interface (technically, the old one >>> too, but Barry's trick for getting farray length was a workaround the lack >>> of explicit interface). >> >> Huh, what? We don't want to require an explicit interface! Where is this >> change? What is the url of the change you made? Did you put it in petsc-dev >> or petsc-3.3? Why do you need to change it to require an explicit interface. >> >> Be like Jed and when you say you made some change include the url business >> so people can jump immediately to the change you are talking about instead >> of wasting 1/2 and hour trying to find something they cannot find. > > Apologies, will do next time. That would also have helped me realize that I > had pushed to my own clone, not petsc-3.3 or petsc-dev repository... I am > attaching the patch I was planing on submitting. > > Out of curiosity, what is the rationale for not wanting an explicit > interface? As far as I understand, the fortran standard mandates an explicit > interface in this situation (array of strings).
I'm confused. F77 supported passing an array of strings but doesn't even have the concept of an explicit interface so how can flater require an explicit interface for the exact same call? Is it because you want to use size(FArray) instead of looking for the '' string? > I would understand in the situation of pure f77 compatibility for instance, > but we threw this away with the iso_c_binding module anyway... I want the user experience to be as close to f77 (what they are used to) as possible and not introduced unnecessary flater crap. Barry > > Perhaps introducing f2003 in petsc was a bad idea, considering the large > variety of compilers you need to support. If you feel that it introduces more > issues than solving problems, feel free to strip the PetscOptionsEnum and > PetscBagRegisterEnum bindings. They could easily be packaged separately for > the few people who will ever need them. > > <PetscBagRegisterEnum.patch> > > Blaise > > >> >> Barry >> >> >> >>> I can't figure out where to put it. so for the moment, it is in ex5f90 >>> >>> >>> Blaise >>> >>> >>>> >>>> thanks, >>>> Satish >>>> >>>> >>>> On Thu, 31 May 2012, Satish Balay wrote: >>>> >>>>> Barry is looking at using this flag and reorganizing the f2003 code. >>>>> [perhaps the interface functions that need this functionality won't be >>>>> compiled selectively - based on this flag] >>>>> >>>>> Satish >>>>> >>>>> On Thu, 31 May 2012, Jed Brown wrote: >>>>> >>>>>> So how do we deal with this function not being implemented unless an >>>>>> F2003 >>>>>> compiler is used? Just #ifdef its body and produce a run-time error when >>>>>> an >>>>>> old compiler is used? Satish, are you doing this? >>>>>> >>>>>> On Thu, May 31, 2012 at 11:36 AM, Satish Balay <balay at mcs.anl.gov> >>>>>> wrote: >>>>>> >>>>>>> Added configure check. >>>>>>> >>>>>>> http://petsc.cs.iit.edu/petsc/releases/BuildSystem-3.3/rev/a6a959d40d3d >>>>>>> >>>>>>> Satish >>>>>>> >>>>>>> On Thu, 31 May 2012, Jed Brown wrote: >>>>>>> >>>>>>>> And we have our first petsc-maint breakage due to this Fortran 2003 >>>>>>> thingy. >>>>>>>> >>>>>>>> On Thu, May 31, 2012 at 9:03 AM, Satish Balay <balay at mcs.anl.gov> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> This code is using "use,intrinsic :: iso_c_binding" >>>>>>>>> >>>>>>>>> Isn't this a fortran 2003 thingy? Perhaps there should be a configure >>>>>>>>> checks for it. >>>>>>>>> >>>>>>>>> Satish >>>>>>>>> >>>>>>>>> On Wed, 30 May 2012, Barry Smith wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Blaise, >>>>>>>>>> >>>>>>>>>> I have pushed PetscOptionsGetEnum() and PetscBagRegisterEnum() >>>>>>> for >>>>>>>>> f90 to petsc-dev tests are in src/sys/examples/tutorials >>>>>>>>>> >>>>>>>>>> Barry >>>>> >>>> >>> >>> -- >>> Department of Mathematics and Center for Computation & Technology >>> Louisiana State University, Baton Rouge, LA 70803, USA >>> Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 >>> http://www.math.lsu.edu/~bourdin >>> >>> >>> >>> >>> >>> >>> >> > > -- > Department of Mathematics and Center for Computation & Technology > Louisiana State University, Baton Rouge, LA 70803, USA > Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 > http://www.math.lsu.edu/~bourdin > > > > > > >