Индексирование пользовательских типов в фортране - PullRequest
2 голосов
/ 29 января 2012

Короче, могу ли я сделать что-то подобное в фортране (любой из стандартов фортрана)

type(my_array), dimension(:,:), allocatable :: a
type(my_array), dimension(5,5) :: b
allocate(a(3, 3))
a = b(1:3, 1:3)

1 Ответ

5 голосов
/ 29 января 2012

Да, конечно, вы можете (в f90 +).

$ cat foo.f90
program foo
implicit none

type :: my_array
  integer :: i
end type my_array

type(my_array), dimension(:,:), allocatable :: a
type(my_array), dimension(5,5) :: b
integer :: i, j

do i = 1, 5
  do j = 1, 5
    b(j,i)%i = 10*i + j
  end do
end do

allocate(a(3, 3))
a = b(1:3, 1:3)

write(*,"(3i3)") a

end program foo
$ gfortran foo.f90 -o foo
$ ./foo
 11 12 13
 21 22 23
 31 32 33
$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...