gfortran - "PROCEDURE attribute conflicts with INTENT attribute" when compiling simple Fortran program with module -


i have simple fortran 95 program

include "sandboxlib.f95" program sandbox     implicit none     write(*, *) 'abc' end program 

and simple module containing function

module sandboxlib   integer, parameter :: dp = kind(1.d0)  contains function cumsum(mat, m, n) result(c)     implicit none     real(dp), intent(in) :: mat     integer, intent(in) :: m, n     integer i, j     real(dp), dimension(m, n) :: c      c(:, 1) = 0.d0      = 2, m         j = 1, n             c(i, j) = c(i-1, j) + mat(i, j)         end     end end function end module 

i compile sandbox.f95 command

/usr/bin/gfortran -o -std=gnu -wfatal-errors -pedantic -wall sandbox.f95 -o sandbox 

which results in error

sandboxlib.f95:6.23:     included @ sandbox.f95:1:      function cumsum(mat, m, n)                        1 error: procedure attribute conflicts intent attribute in 'mat' @ (1) 

i looked around , found few questions discuss modules, functions, etc. or error this, can't figure out why won't compile.

your mat declared scalar

  real(dp), intent(in) :: mat 

but use array

  c(i, j) = c(i-1, j) + mat(i, j) 

and compiler parses function call , assumes mat() function. , functions cannot have intent.

i assume correct thing make mat array in declaration. mat(:,:) or mat(m,n). former can avoid passing m , n arguments.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -