Re: [petsc-dev] What needs to be done before a release?
On Jun 1, 2012, at 11:44 AM, Satish Balay wrote:
Ok - nightly builds on opensolaris has the following error.
character(kind=c_char),pointer :: nullc => null() Character(kind=C_char,len=99),Dimension(:),Pointer::list1
>>> /export/home/petsc/soft/mpich2-1.2.1p1/bin/mpif90 -D__INSDIR__="" -O -moddir=include -M/export/home/petsc/petsc33/include -M/export/home/petsc/petsc33/arch-opensolaris-pkgs-opt/include -M/export/home/petsc/soft/mpich2-1.2.1p1/include -I/export/home/petsc/petsc33/include -I/export/home/petsc/petsc33/arch-opensolaris-pkgs-opt/include -I/export/home/petsc/soft/mpich2-1.2.1p1/include -c /export/home/petsc/petsc33/src/sys/objects/f2003-src/fsrc/optionenum.F -o CMakeFiles/petsc.dir/src/sys/objects/f2003-src/fsrc/optionenum.F.o
CArray = (/(c_loc(list1(i)),i=1,Len),c_loc(nullc)/) ^ "/export/home/petsc/petsc33/src/sys/objects/f2003-src/fsrc/optionenum.F", Line = 33, Column = 25: ERROR: C_LOC function argument must be a variable that has the TARGET attribute and is interoperable, or an allocated allocatable variable that has the target attribute and has interoperable type and type parameters. ^ "/export/home/petsc/petsc33/src/sys/objects/f2003-src/fsrc/optionenum.F", Line = 33, Column = 50: ERROR: C_LOC function argument must be a variable that has the TARGET attribute and is interoperable, or an allocated allocatable variable that has the target attribute and has interoperable type and type parameters.
f90comp: 3218 SOURCE LINES f90comp: 2 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI *** Error code 1 <<<<<<<<<<<<<<
How to fix?
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). 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 <[email protected]> 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 <[email protected]> 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
participants (1)
-
Blaise Bourdin