1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
subroutine foo(func,p,eval)
real(kind=kind(1.0d0)), dimension(3,0:4,0:4,0:4) :: p
logical(kind=kind(.true.)), dimension(5,5,5) :: eval
interface
subroutine func(values,pt)
real(kind=kind(1.0d0)), dimension(:), intent(out) :: values
real(kind=kind(1.0d0)), dimension(:,:), intent(in) :: pt
end subroutine
end interface
real(kind=kind(1.0d0)), dimension(125,3) :: pt
integer(kind=kind(1)) :: n_pt
n_pt = 1
pt(1:n_pt,:) = &
reshape( &
pack( &
transpose(reshape(p,(/3,125/))), &
spread(reshape(eval,(/125/)),dim=2,ncopies=3)), &
(/n_pt,3/))
end subroutine
end
|