Alberto Artoni
Alberto Artoni

Reputation: 31

Dynamic arrays f95

I am trying to understand how to use dynamic memory in f95.

I know that the following code in f2003 works.

program main
        use pippo
              implicit none
              integer, allocatable :: arr(:)
              call createDynamic(arr)

end program main

module pippo
      contains
              subroutine createDynamic(arr)
                        implicit none
                        integer, allocatable,dimension(:)::arr
                        integer :: i,n
                        n=10
                        allocate(arr(n))
                        do i=1,n
                                arr(i) = i
                        end do
                end subroutine createDynamic

end module pippo

I would like to write a version in f95: what is the proper way to do it?

Upvotes: 0

Views: 132

Answers (1)

Your code us valid Fortran 95 + the ISO/IEC TR-15581 enhancements to allocatable arrays, which allowed allocatable dummy arguments.

In pure Fortran 95 you have to allocate the array in the main program or use pointers. However, it is year 2019, almost 2020. There is very little reason to use Fortran 95 without this TR. Or even not just using most of the widely supported Fortran 2008 features.

Upvotes: 5

Related Questions