http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59678

            Bug ID: 59678
           Summary: Segmentation fault on equalizing variables of a
                    complex derived data type
           Product: gcc
           Version: 4.8.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: talebi.hossein at gmail dot com

Hi,

Unfortunetely I could not repeat this with a simpler test example. So this code
below runs fine with Intel compiler but fails with Gfortan. The is the main
file can be replaced in my code from here:

http://sourceforge.net/p/permix/git_pub/ci/master/tree/ 
The minimalitsic serial version can be compiled with 'make minimal_serial'.


program permix

   use permix_cmd_handling_mod
   use prx_class, only: ty_prx
   implicit none

   ! ty_prx is a complex derived data type
   type(ty_prx) :: prx, prx2


   ! initializing prx
   Call prx_init(prx,0,'mylog')

   ! running a simulation with giving an input
   call prx%input%job('../verif/Test1/linearelastic_nonsolver.prx ')

   ! prininting a part of the data
   print *,prx%parts%parts_fem(1)%OBJ%femmesh%X

   prx2=prx ! ERROR: Segmentation fault occurs here

end program permix



Here is the definition of ty_prx:

    type :: ty_prx
        character(200)                     :: title
        logical                            :: isInit=.false.
        integer                            :: revision=1183
        type(ty_input)                     :: input
        type(ty_part)                      :: parts
        type(ty_interaction)               :: interactions
        type(ty_define)                    :: define
        type(ty_analysis)                  :: analysis
        type(ty_modify)                    :: modify
        type(ty_initial_condition)         :: initial_conditions
        type(ty_solver)                    :: solver
        type(ty_output)                    :: output
        type(ty_tools)                     :: tools
        type(ty_restart)                   :: restart
        type(ty_timer)                     :: timer
        type(ty_universe)                  :: universe
        type(ty_error)                     :: error
        type(ty_prx_pointers)              :: pointers

        contains
            !procedure :: init      => prx_init
            procedure :: finalize  => prx_finalize  ! 
    end type ty_prx

Reply via email to