# Resolving name conflicts of input variables with Fortran instrinsics

**URL:** <https://fortran-lang.discourse.group/t/resolving-name-conflicts-of-input-variables-with-fortran-instrinsics/3857>\
**Category:** Help\
**Created:** [June 27, 2022, 8:20pm UTC](https://fortran-lang.discourse.group/t/resolving-name-conflicts-of-input-variables-with-fortran-instrinsics/3857 "2022-06-27T20:20:29Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![septc](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/septc/32/77_2.png) [@septc](https://fortran-lang.discourse.group/u/septc)\
**Post date:** [June 27, 2022, 11:09pm UTC](https://fortran-lang.discourse.group/t/resolving-name-conflicts-of-input-variables-with-fortran-instrinsics/3857/9 "2022-06-27T23:09:11Z")

</div>

I also get the same warning, and it seems to be a known issue. If it is “spurious”, hopefully harmless (false positive)…?

– [59107 – [8/9/10/11 Regression] Spurious "Type specified for intrinsic function 'command\_argument\_count' at (1) is ignored" under -Wsurprising.](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59107)

This is another (very similar) post, related to overloading:  
– [-Wsurprising warning for overloaded intrinsic size](https://fortran-lang.discourse.group/t/wsurprising-warning-for-overloaded-intrinsic-size/560)

The block method of FortranFan also seems interesting (thanks!), which does not give warning for me (gfortran-10). It might be another possibility to use a local alias (pointer or associate) of the `size` argument like…

> **pointer version**
>
> ```fortran
> module test_m
> implicit none
> contains
> subroutine sub( size, arr )
> integer, target :: size
> integer :: arr(:)
> integer, pointer :: size_ !! local alias
> size_ => size
> block
> intrinsic :: size
> 
> !( body of the routine )
> print *, size( arr ), size_
> 
> endblock
> end
> end module
> 
> program main
> use test_m
> call sub( size=777, arr=[1,2,3] )
> end
> 
> ```

> **associate version**
>
> ```fortran
> module test_m
> implicit none
> contains
> subroutine sub( size, arr )
> integer :: size
> integer :: arr(:)
> associate( size_ => size ); block
> intrinsic :: size
> 
> !( body of the routine )
> print *, size( arr ), size_
> 
> end block; end associate
> end
> end module
> 
> program main
> use test_m
> call sub( size=777, arr=[1,2,3] )
> end
> 
> ```

---

_[View the full topic](https://fortran-lang.discourse.group/t/resolving-name-conflicts-of-input-variables-with-fortran-instrinsics/3857)._
