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 |