> On Aug 1, 2016, at 4:41 PM, Santiago Ospina De Los Rios 
> <[email protected]> wrote:
> 
> Hello there,
> 
> I'm having problems defining some variables into derived types in Fortran. 
> Before, I had a similar problems with an allocatable array  "PetsInt" but I 
> solved it just doing a non-collective Petsc Vec. Today I'm having troubles 
> with "PetscBool" or "Logical":
> 
> In a module which define the variables, I have the following:
> 
> MODULE ANISOFLOW_Types
> 
>     IMPLICIT NONE
> 
> #include <petsc/finclude/petscsys.h>
> #include <petsc/finclude/petscvec.h>
>  
> ...
> 
>      TYPE ConductivityField
>          PetscBool                               :: DefinedByCvtZones=.FALSE. 
>    ! It produces the segmentation fault.
>          PetscBool                               :: DefinedByPptZones=.FALSE. 
>    ! It produces the segmentation fault.
>          PetscBool                               :: DefinedByCell=.FALSE.
>          ! Conductivity defined by zones (Local):
>          Vec                                     :: ZoneID
>          TYPE(Tensor),ALLOCATABLE                :: Zone(:)
>          ! Conductivity defined on every cell (Local):
>          Vec                                     :: Cell
>      END TYPE ConductivityField
> 
> 
>     TYPE SpecificStorageField
>         PetscBool                               :: DefinedByStoZones=.FALSE.  
>   ! It produces the segmentation fault.
>         PetscBool                               :: DefinedByPptZones=.FALSE.  
>   ! It produces the segmentation fault.
>         PetscBool                               :: DefinedByCell=.FALSE.
>         ! Specific Storage defined by zones (Local):
>         Vec                                     :: ZoneID
>         Vec                                     :: Zone
>         ! Specific Storage defined on every cell (Global).:
>         Vec                                     :: Cell
>     END TYPE SpecificStorageField
> 
>     TYPE PropertiesField
>         TYPE(ConductivityField)         :: Cvt
>         TYPE(SpecificStorageField)      :: Sto
>         ! Property defined by zones (Local):
>         PetscBool                       :: DefinedByPptZones=.FALSE.
>         Vec                             :: ZoneID
>     END TYPE PropertiesField
> 
> ...
> 
> CONTAINS
> 
> ...
> 
> END MODULE ANISOFLOW_Types
> 
> 
> Later I use it in the main program, with something like this 
> 
> PROGRAM ANISOFLOW
> 
>     USE ANISOFLOW_Types,                ONLY : ... ,PropertiesField, ...
>     ...
> 
>     IMPLICIT NONE
>    
> #include <petsc/finclude/petscsys.h>
> 
>     ...
>     TYPE(PropertiesField)       :: PptFld
>     ...
> 
>     CALL PetscInitialize(PETSC_COMM_WORLD,ierr)
>     ...
>     CALL PetscFinalize(ierr)
> 
> END PROGRAM
> 
> 
> When I run the program appears a Segmentation Fault, which disappears when I 
> comment the booleans marked in the code. Because I need them, I used Valgrind 
> to figure out what is happening but it is yet a mistery to me.
> 
> Valgrind message:
> ==5160==
> ==5160== Invalid read of size 1

   It is curious that it says "of size 1" when we declare PetscBool to be a 
logical*4 I don't see anything obviously wrong.

   Please send a simple code we can compile and run that reproduces the problem.

   Barry
> ==5160==    at 0x4FB2156: petscinitialize_ (zstart.c:433)
> ==5160==    by 0x4030EA: MAIN__ (ANISOFLOW.F90:29) # line of petsc 
> inizalitation
> ==5160==    by 0x404380: main (ANISOFLOW.F90:3) # line of "USE 
> ANISOFLOW_Types,                ONLY : ... ,PropertiesField, ..."
> ==5160==  Address 0xc54fff is not stack'd, malloc'd or (recently) free'd
> ==5160==
> 
> Program received signal SIGSEGV: Segmentation fault - invalid memory 
> reference.
> 
> Backtrace for this error:
> #0  0x699E777
> #1  0x699ED7E
> #2  0x6F0BCAF
> #3  0x4FB2156
> #4  0x4030EA in anisoflow at ANISOFLOW.F90:29
>  
> I think it is maybe related with petsc because the error popped out just in 
> its initialization, so if you know what's going on, I would appreciate to 
> tell me.
> 
> Santiago Ospina
> -- 
> 
> -- 
> Att:
> 
> Santiago Ospina De Los RĂ­os
> National University of Colombia

Reply via email to