есть такие типы данных
module data_types
type cParticle
real(4) :: v(3),r0(2),rS(3),r1(2),SinA,CosA
endtype cParticle
type aParticle
real(4) :: v(3),r0(2)
endtype aParticle
type pCItem
type(aParticle) :: Atm
type(cParticle) :: Ele
type(cParticle) :: Ion
end type pCItem
endmodule data_types
далее
use data_types
integer::ipMax=1,iCells=5
integer::ip=1,iCell=1
type(pCItem),allocatable,target,dimension(:,:)::pCellArray
type(cParticle),pointer,dimension(:,:)::pArray
type(cParticle),pointer::p_pointer
real(4),pointer,dimension(:)::v_pointer
real(4)::v_real(3)=99.
allocate( pCellArray(1:ipMax,1:iCells) )
pArray=>pCellArray%Ele !for example
а теперь сама проблема 1: если делаю вот так
p_pointer=>pArray(ip,IC);
~/exp/p7impl2d/src gfortran -Wall data_types.f95
data_types.f95: In function ‘MAIN__’:
data_types.f95:19: internal compiler error: Ошибка сегментирования
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.
вторая проблема: если делаю так
pArray(ip,iC)%v=smth
v_pointer=>pArray(ip,iC)%v
v_pointer=smth
то всё нормально записывается. в чём причина?